Update survey response, adding EmployeeId , Location Id as int, adjust end point for ansers submission in batch
This commit is contained in:
parent
4cf7d9f891
commit
9109d0d793
@ -5,7 +5,6 @@ using Microsoft.OpenApi.Any;
|
||||
|
||||
namespace DamageAssesment.Api.Answers.Controllers
|
||||
{
|
||||
[Route("api")]
|
||||
[ApiController]
|
||||
public class AnswersController: ControllerBase
|
||||
{
|
||||
@ -49,10 +48,10 @@ namespace DamageAssesment.Api.Answers.Controllers
|
||||
/// <summary>
|
||||
/// Get all answers based on responseId.
|
||||
/// </summary>
|
||||
[HttpGet("AnswersByResponse/{ResponseId}")]
|
||||
public async Task<IActionResult> GetAnswersByResponseId(int ResponseId)
|
||||
[HttpGet("Answers/ByResponse/{responseid}")]
|
||||
public async Task<IActionResult> GetAnswersByResponseId(int responseid)
|
||||
{
|
||||
var result = await this.answerProvider.GetAnswersAsync(ResponseId);
|
||||
var result = await this.answerProvider.GetAnswersAsync(responseid);
|
||||
if(result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Answers);
|
||||
@ -63,10 +62,10 @@ namespace DamageAssesment.Api.Answers.Controllers
|
||||
/// Get all answers based on questionId.
|
||||
/// </summary>
|
||||
|
||||
[HttpGet("AnswersByQuestion/{QuestionId}")]
|
||||
public async Task<IActionResult> AnswersByQuestionId(int QuestionId)
|
||||
[HttpGet("Answers/ByQuestion/{questionid}")]
|
||||
public async Task<IActionResult> AnswersByQuestionId(int questionid)
|
||||
{
|
||||
var result = await this.answerProvider.GetAnswersByQuestionAsync(QuestionId);
|
||||
var result = await this.answerProvider.GetAnswersByQuestionAsync(questionid);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Answers);
|
||||
|
@ -7,7 +7,6 @@ using System.Net.Http.Headers;
|
||||
|
||||
namespace DamageAssesment.Api.Attachments.Controllers
|
||||
{
|
||||
[Route("api")]
|
||||
[ApiController]
|
||||
public class AttachmentsController : ControllerBase
|
||||
{
|
||||
@ -139,11 +138,11 @@ namespace DamageAssesment.Api.Attachments.Controllers
|
||||
/// <summary>
|
||||
/// Delete an existing attachment.
|
||||
/// </summary>
|
||||
[HttpDelete("Delete")]
|
||||
public async Task<IActionResult> DeleteAttachment(int Id)
|
||||
[HttpDelete("Attachments/{id}")]
|
||||
public async Task<IActionResult> DeleteAttachment(int id)
|
||||
{
|
||||
// database soft delete
|
||||
var result = await this.AttachmentProvider.DeleteAttachmentAsync(Id);
|
||||
var result = await this.AttachmentProvider.DeleteAttachmentAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
// deleting file from folder
|
||||
|
@ -43,11 +43,11 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
public async Task GetEmployeeAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("Emp1");
|
||||
mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync("Emp1")).ReturnsAsync(mockResponse);
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
|
||||
var result = (OkObjectResult)await EmployeeProvider.GetEmployeeByIdAsync("Emp1");
|
||||
var result = (OkObjectResult)await EmployeeProvider.GetEmployeeByIdAsync(1);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -57,10 +57,10 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
{
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getNotFoundResponse();
|
||||
mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync("Emp99")).ReturnsAsync(mockResponse);
|
||||
mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync(99999)).ReturnsAsync(mockResponse);
|
||||
|
||||
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
|
||||
var result = (NotFoundResult)await EmployeeProvider.GetEmployeeByIdAsync("Emp99");
|
||||
var result = (NotFoundResult)await EmployeeProvider.GetEmployeeByIdAsync(99999);
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
public async Task PostEmployeeAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("Emp1");
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
var mockInputEmployee = await MockData.getInputEmployeeData();
|
||||
mockEmployeeService.Setup(service => service.PostEmployeeAsync(mockInputEmployee)).ReturnsAsync(mockResponse);
|
||||
|
||||
@ -96,12 +96,12 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
public async Task PutEmployeeAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("Emp1");
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
var mockInputEmployee = await MockData.getInputEmployeeData();
|
||||
mockEmployeeService.Setup(service => service.UpdateEmployeeAsync("Emp1",mockInputEmployee)).ReturnsAsync(mockResponse);
|
||||
mockEmployeeService.Setup(service => service.UpdateEmployeeAsync(1,mockInputEmployee)).ReturnsAsync(mockResponse);
|
||||
|
||||
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
|
||||
var result = (OkObjectResult)await EmployeeProvider.UpdateEmployee("Emp1",mockInputEmployee);
|
||||
var result = (OkObjectResult)await EmployeeProvider.UpdateEmployee(1,mockInputEmployee);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -112,10 +112,10 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getNotFoundResponse();
|
||||
var mockInputEmployee = await MockData.getInputEmployeeData();
|
||||
mockEmployeeService.Setup(service => service.UpdateEmployeeAsync("Emp1", mockInputEmployee)).ReturnsAsync(mockResponse);
|
||||
mockEmployeeService.Setup(service => service.UpdateEmployeeAsync(1, mockInputEmployee)).ReturnsAsync(mockResponse);
|
||||
|
||||
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
|
||||
var result = (NotFoundObjectResult)await EmployeeProvider.UpdateEmployee("Emp1", mockInputEmployee);
|
||||
var result = (NotFoundObjectResult)await EmployeeProvider.UpdateEmployee(1, mockInputEmployee);
|
||||
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
@ -126,10 +126,10 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getBadRequestResponse();
|
||||
var mockInputEmployee = await MockData.getInputEmployeeData();
|
||||
mockEmployeeService.Setup(service => service.UpdateEmployeeAsync("Emp1", mockInputEmployee)).ReturnsAsync(mockResponse);
|
||||
mockEmployeeService.Setup(service => service.UpdateEmployeeAsync(1, mockInputEmployee)).ReturnsAsync(mockResponse);
|
||||
|
||||
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
|
||||
var result = (BadRequestObjectResult)await EmployeeProvider.UpdateEmployee("Emp1", mockInputEmployee);
|
||||
var result = (BadRequestObjectResult)await EmployeeProvider.UpdateEmployee(1, mockInputEmployee);
|
||||
|
||||
Assert.Equal(400, result.StatusCode);
|
||||
}
|
||||
@ -138,12 +138,12 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
public async Task DeleteEmployeeAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("Emp1");
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
|
||||
mockEmployeeService.Setup(service => service.DeleteEmployeeAsync("Emp1")).ReturnsAsync(mockResponse);
|
||||
mockEmployeeService.Setup(service => service.DeleteEmployeeAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
|
||||
var result = (OkObjectResult)await EmployeeProvider.DeleteEmployee("Emp1");
|
||||
var result = (OkObjectResult)await EmployeeProvider.DeleteEmployee(1);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -153,10 +153,10 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
{
|
||||
var mockEmployeeService = new Mock<IEmployeesProvider>();
|
||||
var mockResponse = await MockData.getNotFoundResponse();
|
||||
mockEmployeeService.Setup(service => service.DeleteEmployeeAsync("Emp1")).ReturnsAsync(mockResponse);
|
||||
mockEmployeeService.Setup(service => service.DeleteEmployeeAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
|
||||
var result = (NotFoundResult)await EmployeeProvider.DeleteEmployee("Emp1");
|
||||
var result = (NotFoundResult)await EmployeeProvider.DeleteEmployee(1);
|
||||
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
|
@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Text;
|
||||
|
||||
namespace DamageAssesment.Api.Employees.Test
|
||||
{
|
||||
@ -15,13 +11,13 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
list.Append(new Employees.Models.Employee { Id = "Emp"+i, Name = "Emoployee"+i, Email = "abc"+i+"@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18-i), IsActive = true, PreferredLanguage = "en" });
|
||||
list.Append(new Employees.Models.Employee { Id = i, Name = "Emoployee"+i, Email = "abc"+i+"@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18-i), IsActive = true, PreferredLanguage = "en" });
|
||||
}
|
||||
return (true, list, null);
|
||||
}
|
||||
|
||||
|
||||
public static async Task<(bool, Employees.Models.Employee, string)> getOkResponse(string Id)
|
||||
public static async Task<(bool, Employees.Models.Employee, string)> getOkResponse(int Id)
|
||||
{
|
||||
var Employees = await getOkResponse();
|
||||
var Employee = Employees.Item2.FirstOrDefault(s => s.Id == Id);
|
||||
@ -45,7 +41,7 @@ namespace DamageAssesment.Api.Employees.Test
|
||||
|
||||
public static async Task<Models.Employee> getInputEmployeeData()
|
||||
{
|
||||
return new Models.Employee { Id = "Emp1", Name = "ABC1", Email = "abc1@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18), IsActive = true, PreferredLanguage = "en" };
|
||||
return new Models.Employee { Id = 1, Name = "ABC1", Email = "abc1@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18), IsActive = true, PreferredLanguage = "en" };
|
||||
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace DamageAssesment.Api.Employees.Controllers
|
||||
{
|
||||
[Route("api")]
|
||||
[ApiController]
|
||||
public class EmployeesController : ControllerBase
|
||||
{
|
||||
@ -37,11 +36,11 @@ namespace DamageAssesment.Api.Employees.Controllers
|
||||
/// GET request for retrieving an employee by ID.
|
||||
/// </summary>
|
||||
|
||||
[HttpGet("Employees/{Id}")]
|
||||
public async Task<ActionResult> GetEmployeeByIdAsync(string Id)
|
||||
[HttpGet("Employees/{id}")]
|
||||
public async Task<ActionResult> GetEmployeeByIdAsync(int id)
|
||||
{
|
||||
|
||||
var result = await EmployeeProvider.GetEmployeeByIdAsync(Id);
|
||||
var result = await EmployeeProvider.GetEmployeeByIdAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Employee);
|
||||
@ -54,12 +53,12 @@ namespace DamageAssesment.Api.Employees.Controllers
|
||||
/// PUT request for updating an existing employee.
|
||||
/// </summary>
|
||||
/// <param name="Employee">The updated employee object.</param>
|
||||
[HttpPut("Employees")]
|
||||
public async Task<IActionResult> UpdateEmployee(string Id, Models.Employee Employee)
|
||||
[HttpPut("Employees/{id}")]
|
||||
public async Task<IActionResult> UpdateEmployee(int id, Models.Employee Employee)
|
||||
{
|
||||
if (Employee != null)
|
||||
{
|
||||
var result = await this.EmployeeProvider.UpdateEmployeeAsync(Id,Employee);
|
||||
var result = await this.EmployeeProvider.UpdateEmployeeAsync(id,Employee);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Employee);
|
||||
@ -88,14 +87,14 @@ namespace DamageAssesment.Api.Employees.Controllers
|
||||
}
|
||||
return BadRequest(result.ErrorMessage);
|
||||
}
|
||||
return CreatedAtRoute("DefaultApi", new { id = Employee.Id }, Employee);
|
||||
return CreatedAtRoute("DefaultApi", new { Id = Employee.Id }, Employee);
|
||||
}
|
||||
/// <summary>
|
||||
/// DELETE request for deleting an existing employee.
|
||||
/// </summary>
|
||||
/// <param name="id">The ID of the employee to be deleted.</param>
|
||||
[HttpDelete("Employees/{id}")]
|
||||
public async Task<IActionResult> DeleteEmployee(string id)
|
||||
public async Task<IActionResult> DeleteEmployee(int id)
|
||||
{
|
||||
var result = await this.EmployeeProvider.DeleteEmployeeAsync(id);
|
||||
if (result.IsSuccess)
|
||||
|
@ -5,7 +5,9 @@ namespace DamageAssesment.Api.Employees.Db
|
||||
public class Employee
|
||||
{
|
||||
[Key]
|
||||
public string Id { get; set; }
|
||||
public int Id { get; set; }
|
||||
[StringLength(50)]
|
||||
public string EmployeeCode { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string Name { get; set; }
|
||||
|
@ -8,5 +8,14 @@ namespace DamageAssesment.Api.Employees.Db
|
||||
public EmployeeDbContext(DbContextOptions options) : base(options)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
modelBuilder.Entity<Employee>()
|
||||
.Property(item => item.Id)
|
||||
.ValueGeneratedOnAdd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,10 +3,10 @@
|
||||
public interface IEmployeesProvider
|
||||
{
|
||||
Task<(bool IsSuccess, IEnumerable<Models.Employee> Employees, string ErrorMessage)> GetEmployeesAsync();
|
||||
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(string Id);
|
||||
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(int Id);
|
||||
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> PostEmployeeAsync(Models.Employee Employee);
|
||||
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(string Id, Models.Employee Employee);
|
||||
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(string Id);
|
||||
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(int Id, Models.Employee Employee);
|
||||
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(int Id);
|
||||
void SeedData();
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,8 @@ namespace DamageAssesment.Api.Employees.Models
|
||||
{
|
||||
public class Employee
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public int Id { get; set; }
|
||||
public string EmployeeCode { get; set; }
|
||||
public string Name { get; set; }
|
||||
public DateTime BirthDate { get; set; }
|
||||
public string OfficePhoneNumber { get; set; }
|
||||
|
@ -7,6 +7,7 @@ namespace DamageAssesment.Api.Employees.Profiles
|
||||
public EmployeesProfile()
|
||||
{
|
||||
CreateMap<Db.Employee, Models.Employee>();
|
||||
CreateMap<Models.Employee, Db.Employee>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,12 +45,12 @@ namespace DamageAssesment.Api.Employees.Providers
|
||||
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(string Id)
|
||||
public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(int Id)
|
||||
{
|
||||
try
|
||||
{
|
||||
logger?.LogInformation("Query Employee");
|
||||
var Employee = await EmployeeDbContext.Employees.AsNoTracking().FirstOrDefaultAsync(q => q.Id.ToLower() == Id.ToLower());
|
||||
var Employee = await EmployeeDbContext.Employees.AsNoTracking().FirstOrDefaultAsync(q => q.Id == Id);
|
||||
if (Employee != null)
|
||||
{
|
||||
logger?.LogInformation($"{Employee} customer(s) found");
|
||||
@ -72,13 +72,14 @@ namespace DamageAssesment.Api.Employees.Providers
|
||||
Db.Employee _employee = mapper.Map<Models.Employee, Db.Employee>(Employee);
|
||||
|
||||
logger?.LogInformation("Query Employee");
|
||||
if (!EmployeeExists(Employee.Id))
|
||||
if (!EmployeeCodeExists(Employee.EmployeeCode))
|
||||
{
|
||||
EmployeeDbContext.Employees.Add(_employee);
|
||||
Employee.Id = _employee.Id;
|
||||
EmployeeDbContext.SaveChanges();
|
||||
return (true, Employee, null);
|
||||
}
|
||||
return (false, null, "Employee is already exits");
|
||||
return (false, null, "Employee code is already exits");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -86,19 +87,20 @@ namespace DamageAssesment.Api.Employees.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(string Id , Models.Employee Employee)
|
||||
public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(int Id, Models.Employee Employee)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Employee != null)
|
||||
{
|
||||
var _employee = await EmployeeDbContext.Employees.AsNoTracking().Where(s => s.Id.ToLower() == Id.ToLower()).FirstOrDefaultAsync();
|
||||
var _employee = await EmployeeDbContext.Employees.AsNoTracking().Where(s => s.Id == Id).FirstOrDefaultAsync();
|
||||
|
||||
if (_employee != null)
|
||||
{
|
||||
Db.Employee vEmployee = mapper.Map<Models.Employee, Db.Employee>(Employee);
|
||||
EmployeeDbContext.Employees.Update(vEmployee);
|
||||
EmployeeDbContext.SaveChanges();
|
||||
Employee.Id = Id;
|
||||
return (true, Employee, "Successful");
|
||||
}
|
||||
else
|
||||
@ -120,11 +122,11 @@ namespace DamageAssesment.Api.Employees.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(string Id)
|
||||
public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(int Id)
|
||||
{
|
||||
try
|
||||
{
|
||||
Db.Employee Employee = EmployeeDbContext.Employees.AsNoTracking().Where(a => a.Id.ToLower() == Id.ToLower()).FirstOrDefault();
|
||||
Db.Employee Employee = EmployeeDbContext.Employees.AsNoTracking().Where(a => a.Id == Id).FirstOrDefault();
|
||||
if (Employee == null)
|
||||
{
|
||||
return (false, null, "Not Found");
|
||||
@ -140,21 +142,26 @@ namespace DamageAssesment.Api.Employees.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
private bool EmployeeExists(string id)
|
||||
private bool EmployeeExists(int id)
|
||||
{
|
||||
return EmployeeDbContext.Employees.AsNoTracking().Count(e => e.Id.ToLower() == id.ToLower()) > 0;
|
||||
return EmployeeDbContext.Employees.AsNoTracking().Count(e => e.Id == id) > 0;
|
||||
}
|
||||
|
||||
private bool EmployeeCodeExists(string employeeCode)
|
||||
{
|
||||
return EmployeeDbContext.Employees.AsNoTracking().Count(e => e.EmployeeCode.ToLower() == employeeCode.ToLower()) > 0;
|
||||
}
|
||||
|
||||
public void SeedData()
|
||||
{
|
||||
if (!EmployeeDbContext.Employees.Any())
|
||||
{
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp1", Name = "ABC1", Email = "abc1@gmail.com", OfficePhoneNumber = "12345678",BirthDate=DateTime.Now.AddYears(-18), IsActive = true,PreferredLanguage="en" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp2", Name = "ABC2", Email = "abc2@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-22), IsActive = true, PreferredLanguage = "fr" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp3", Name = "ABC3", Email = "abc3@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-30) ,IsActive = true, PreferredLanguage = "fr" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp4", Name = "ABC4", Email = "abc4@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-20) ,IsActive = true, PreferredLanguage = "en" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp5", Name = "ABC5", Email = "abc5@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-23) ,IsActive = true, PreferredLanguage = "es" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp6", Name = "ABC6", Email = "abc6@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-32) ,IsActive = true, PreferredLanguage = "es" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 1, EmployeeCode = "Emp1", Name = "ABC1", Email = "abc1@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18), IsActive = true, PreferredLanguage = "en" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 2, EmployeeCode = "Emp2", Name = "ABC2", Email = "abc2@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-22), IsActive = true, PreferredLanguage = "fr" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 3, EmployeeCode = "Emp3", Name = "ABC3", Email = "abc3@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-30), IsActive = true, PreferredLanguage = "fr" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 4, EmployeeCode = "Emp4", Name = "ABC4", Email = "abc4@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-20), IsActive = true, PreferredLanguage = "en" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 5, EmployeeCode = "Emp5", Name = "ABC5", Email = "abc5@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-23), IsActive = true, PreferredLanguage = "es" });
|
||||
EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 6, EmployeeCode = "Emp6", Name = "ABC6", Email = "abc6@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-32), IsActive = true, PreferredLanguage = "es" });
|
||||
EmployeeDbContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
@ -40,11 +40,11 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
public async Task GetLocationsByIdAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getOkResponseLocation("Loc1");
|
||||
mockLocationService.Setup(service => service.GetLocationByIdAsync("Loc1")).ReturnsAsync(mockResponse);
|
||||
var mockResponse = await MockData.getOkResponseLocation(1);
|
||||
mockLocationService.Setup(service => service.GetLocationByIdAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
var result = (OkObjectResult)await locationProvider.GetLocationByIdAsync("Loc1");
|
||||
var result = (OkObjectResult)await locationProvider.GetLocationByIdAsync(1);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -55,10 +55,10 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getLocationNotFoundResponse();
|
||||
mockLocationService.Setup(service => service.GetLocationByIdAsync("Loc1")).ReturnsAsync(mockResponse);
|
||||
mockLocationService.Setup(service => service.GetLocationByIdAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
var result = (NotFoundResult)await locationProvider.GetLocationByIdAsync("Loc1");
|
||||
var result = (NotFoundResult)await locationProvider.GetLocationByIdAsync(1);
|
||||
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
@ -68,8 +68,8 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
public async Task PostLocationAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getOkResponseLocation("Loc1");
|
||||
var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
var mockResponse = await MockData.getOkResponseLocation(1);
|
||||
var mockInputLocation = new Models.Location { Id = 1, RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
mockLocationService.Setup(service => service.PostLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
@ -83,11 +83,11 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getLocationNotFoundResponse();
|
||||
var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
var mockInputLocation = new Models.Location { Id = 1, RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
mockLocationService.Setup(service => service.PostLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
var result = (BadRequestResult)await locationProvider.CreateLocation(mockInputLocation);
|
||||
var result = (BadRequestObjectResult)await locationProvider.CreateLocation(mockInputLocation);
|
||||
|
||||
Assert.Equal(400, result.StatusCode);
|
||||
}
|
||||
@ -98,11 +98,11 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getLocation(true, "update success");
|
||||
var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
mockLocationService.Setup(service => service.UpdateLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
|
||||
var mockInputLocation = new Models.Location { Id = 1, LocationCode ="Loc1", RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
mockLocationService.Setup(service => service.UpdateLocationAsync(1,mockInputLocation)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
var result = (OkObjectResult)await locationProvider.UpdateLocation(mockInputLocation);
|
||||
var result = (OkObjectResult)await locationProvider.UpdateLocation(1,mockInputLocation);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -112,11 +112,11 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getLocation(false, null);
|
||||
var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
mockLocationService.Setup(service => service.UpdateLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
|
||||
var mockInputLocation = new Models.Location { Id = 1, RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
mockLocationService.Setup(service => service.UpdateLocationAsync(1,mockInputLocation)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
var result = (NotFoundResult)await locationProvider.UpdateLocation(mockInputLocation);
|
||||
var result = (NotFoundResult)await locationProvider.UpdateLocation(1,mockInputLocation);
|
||||
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
@ -127,10 +127,10 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getLocation(true, "delete success");
|
||||
mockLocationService.Setup(service => service.DeleteLocationAsync("Loc1")).ReturnsAsync(mockResponse);
|
||||
mockLocationService.Setup(service => service.DeleteLocationAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
var result = (OkObjectResult)await locationProvider.DeleteLocation("Loc1");
|
||||
var result = (OkObjectResult)await locationProvider.DeleteLocation(1);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -140,10 +140,10 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
{
|
||||
var mockLocationService = new Mock<ILocationsProvider>();
|
||||
var mockResponse = await MockData.getLocation(false, null);
|
||||
mockLocationService.Setup(service => service.DeleteLocationAsync("Loc1")).ReturnsAsync(mockResponse);
|
||||
mockLocationService.Setup(service => service.DeleteLocationAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var locationProvider = new LocationsController(mockLocationService.Object);
|
||||
var result = (NotFoundResult)await locationProvider.DeleteLocation("Loc1");
|
||||
var result = (NotFoundResult)await locationProvider.DeleteLocation(1);
|
||||
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
@ -180,11 +180,11 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
public async Task GetRegionAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("1");
|
||||
mockRegionService.Setup(service => service.GetRegionByIdAsync("1")).ReturnsAsync(mockResponse);
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
mockRegionService.Setup(service => service.GetRegionByIdAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var regionProvider = new RegionsController(mockRegionService.Object);
|
||||
var result = (OkObjectResult)await regionProvider.GetRegionAsync("1");
|
||||
var result = (OkObjectResult)await regionProvider.GetRegionAsync(1);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -194,10 +194,10 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
{
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getNotFoundResponse();
|
||||
mockRegionService.Setup(service => service.GetRegionByIdAsync("99")).ReturnsAsync(mockResponse);
|
||||
mockRegionService.Setup(service => service.GetRegionByIdAsync(99999)).ReturnsAsync(mockResponse);
|
||||
|
||||
var regionProvider = new RegionsController(mockRegionService.Object);
|
||||
var result = (NotFoundResult)await regionProvider.GetRegionAsync("99");
|
||||
var result = (NotFoundResult)await regionProvider.GetRegionAsync(99);
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
|
||||
@ -205,7 +205,7 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
public async Task PostRegionAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("1");
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
var mockInputRegion = await MockData.getInputRegionData();
|
||||
mockRegionService.Setup(service => service.PostRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
|
||||
|
||||
@ -233,12 +233,12 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
public async Task PutRegionAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("1");
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
var mockInputRegion = await MockData.getInputRegionData();
|
||||
mockRegionService.Setup(service => service.PutRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
|
||||
mockRegionService.Setup(service => service.PutRegionAsync(1,mockInputRegion)).ReturnsAsync(mockResponse);
|
||||
|
||||
var regionProvider = new RegionsController(mockRegionService.Object);
|
||||
var result = (OkObjectResult)await regionProvider.PutRegionAsync(mockInputRegion);
|
||||
var result = (OkObjectResult)await regionProvider.PutRegionAsync(1,mockInputRegion);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -249,10 +249,10 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getNotFoundResponse();
|
||||
var mockInputRegion = await MockData.getInputRegionData();
|
||||
mockRegionService.Setup(service => service.PutRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
|
||||
mockRegionService.Setup(service => service.PutRegionAsync(1, mockInputRegion)).ReturnsAsync(mockResponse);
|
||||
|
||||
var regionProvider = new RegionsController(mockRegionService.Object);
|
||||
var result = (NotFoundObjectResult)await regionProvider.PutRegionAsync(mockInputRegion);
|
||||
var result = (NotFoundObjectResult)await regionProvider.PutRegionAsync(1,mockInputRegion);
|
||||
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
@ -263,10 +263,10 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getBadRequestResponse();
|
||||
var mockInputRegion = await MockData.getInputRegionData();
|
||||
mockRegionService.Setup(service => service.PutRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
|
||||
mockRegionService.Setup(service => service.PutRegionAsync(1, mockInputRegion)).ReturnsAsync(mockResponse);
|
||||
|
||||
var regionProvider = new RegionsController(mockRegionService.Object);
|
||||
var result = (BadRequestObjectResult)await regionProvider.PutRegionAsync(mockInputRegion);
|
||||
var result = (BadRequestObjectResult)await regionProvider.PutRegionAsync(1, mockInputRegion);
|
||||
|
||||
Assert.Equal(400, result.StatusCode);
|
||||
}
|
||||
@ -275,12 +275,12 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
public async Task DeleteRegionAsync_ShouldReturnStatusCode200()
|
||||
{
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getOkResponse("1");
|
||||
var mockResponse = await MockData.getOkResponse(1);
|
||||
|
||||
mockRegionService.Setup(service => service.DeleteRegionAsync("1")).ReturnsAsync(mockResponse);
|
||||
mockRegionService.Setup(service => service.DeleteRegionAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var regionProvider = new RegionsController(mockRegionService.Object);
|
||||
var result = (OkObjectResult)await regionProvider.DeleteRegionAsync("1");
|
||||
var result = (OkObjectResult)await regionProvider.DeleteRegionAsync(1);
|
||||
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
@ -291,10 +291,10 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
var mockRegionService = new Mock<IRegionsProvider>();
|
||||
var mockResponse = await MockData.getNotFoundResponse();
|
||||
|
||||
mockRegionService.Setup(service => service.DeleteRegionAsync("1")).ReturnsAsync(mockResponse);
|
||||
mockRegionService.Setup(service => service.DeleteRegionAsync(1)).ReturnsAsync(mockResponse);
|
||||
|
||||
var regionProvider = new RegionsController(mockRegionService.Object);
|
||||
var result = (NotFoundResult)await regionProvider.DeleteRegionAsync("1");
|
||||
var result = (NotFoundResult)await regionProvider.DeleteRegionAsync(1);
|
||||
|
||||
Assert.Equal(404, result.StatusCode);
|
||||
}
|
||||
|
@ -9,13 +9,13 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
list.Append(new Locations.Models.Region { Id = "R" + i, Abbreviation = "AB" + i, Name = "Region " + i });
|
||||
list.Append(new Locations.Models.Region { Id = i, Abbreviation = "AB" + i, Name = "Region " + i });
|
||||
}
|
||||
return (true, list, null);
|
||||
}
|
||||
|
||||
|
||||
public static async Task<(bool, Locations.Models.Region, string)> getOkResponse(string Id)
|
||||
public static async Task<(bool, Locations.Models.Region, string)> getOkResponse(int Id)
|
||||
{
|
||||
var regions = await getOkResponse();
|
||||
var region = regions.Item2.FirstOrDefault(s => s.Id == Id);
|
||||
@ -29,7 +29,7 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
list.Append(new Locations.Models.Location { Id = "Loc"+ i, RegionId = "R"+i, Name ="Location"});
|
||||
list.Append(new Locations.Models.Location { Id = i, RegionId = i, Name = "Location" });
|
||||
}
|
||||
return (true, list, null);
|
||||
}
|
||||
@ -39,16 +39,17 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
return (false, null, null);
|
||||
}
|
||||
|
||||
public static async Task<(bool, Models.Location, string)> getOkResponseLocation(string Id)
|
||||
public static async Task<(bool, Models.Location, string)> getOkResponseLocation(int Id)
|
||||
{
|
||||
var locations = await getOkResponseLocation();
|
||||
var location = locations.Item2.FirstOrDefault(s => s.Id == Id);
|
||||
return (true, location, null);
|
||||
}
|
||||
|
||||
public static async Task<(bool, string)> getLocation(bool value,string message)
|
||||
public static async Task<(bool, Models.Location, string)> getLocation(bool value, string message)
|
||||
{
|
||||
return (value,message);
|
||||
var location = new Models.Location { Id = 1, LocationCode = "Loc1", RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
|
||||
return (value, location, message);
|
||||
}
|
||||
|
||||
public static async Task<(bool, Locations.Models.Location, string)> getLocationNotFoundResponse()
|
||||
@ -73,7 +74,7 @@ namespace DamageAssesment.Api.Locations.Test
|
||||
|
||||
public static async Task<Locations.Models.Region> getInputRegionData()
|
||||
{
|
||||
return new Locations.Models.Region { Id = "R99", Name = "Region 99", Abbreviation = "A99" };
|
||||
return new Locations.Models.Region { Id = 99999, Name = "Region 99", Abbreviation = "A99" };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,12 +4,10 @@ using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace DamageAssesment.Api.Locations.Controllers
|
||||
{
|
||||
[Route("api")]
|
||||
[ApiController]
|
||||
public class LocationsController : ControllerBase
|
||||
{
|
||||
private ILocationsProvider LocationProvider;
|
||||
|
||||
public LocationsController(ILocationsProvider LocationsProvider)
|
||||
{
|
||||
this.LocationProvider = LocationsProvider;
|
||||
@ -25,7 +23,7 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
var result = await LocationProvider.GetLocationsAsync();
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.locations);
|
||||
return Ok(result.Locations);
|
||||
}
|
||||
return NoContent();
|
||||
|
||||
@ -35,7 +33,7 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// </summary>
|
||||
|
||||
[HttpGet("Locations/{id}")]
|
||||
public async Task<ActionResult> GetLocationByIdAsync(string id)
|
||||
public async Task<ActionResult> GetLocationByIdAsync(int id)
|
||||
{
|
||||
|
||||
var result = await LocationProvider.GetLocationByIdAsync(id);
|
||||
@ -50,15 +48,15 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// Update a Location.
|
||||
/// </summary>
|
||||
|
||||
[HttpPut("Locations")]
|
||||
public async Task<IActionResult> UpdateLocation(Models.Location Location)
|
||||
[HttpPut("Locations/{id}")]
|
||||
public async Task<IActionResult> UpdateLocation(int id, Models.Location Location)
|
||||
{
|
||||
if (Location != null)
|
||||
{
|
||||
var result = await this.LocationProvider.UpdateLocationAsync(Location);
|
||||
var result = await this.LocationProvider.UpdateLocationAsync(id, Location);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.ErrorMessage);
|
||||
return Ok(result.Location);
|
||||
}
|
||||
return NotFound();
|
||||
}
|
||||
@ -76,9 +74,9 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
var result = await this.LocationProvider.PostLocationAsync(Location);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Question);
|
||||
return Ok(result.Location);
|
||||
}
|
||||
return BadRequest();
|
||||
return BadRequest(result.ErrorMessage);
|
||||
}
|
||||
return BadRequest();
|
||||
}
|
||||
@ -87,12 +85,12 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// </summary>
|
||||
|
||||
[HttpDelete("Locations/{id}")]
|
||||
public async Task<IActionResult> DeleteLocation(string id)
|
||||
public async Task<IActionResult> DeleteLocation(int id)
|
||||
{
|
||||
var result = await this.LocationProvider.DeleteLocationAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.ErrorMessage);
|
||||
return Ok(result.Location);
|
||||
}
|
||||
return NotFound();
|
||||
}
|
||||
|
@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace DamageAssesment.Api.Locations.Controllers
|
||||
{
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class RegionsController : ControllerBase
|
||||
{
|
||||
@ -17,13 +16,13 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// Get all regions.2
|
||||
/// </summary>
|
||||
|
||||
[HttpGet]
|
||||
[HttpGet("regions")]
|
||||
public async Task<ActionResult> GetRegionsAsync()
|
||||
{
|
||||
var result = await regionProvider.GetRegionsAsync();
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.regions);
|
||||
return Ok(result.Regions);
|
||||
}
|
||||
return NoContent();
|
||||
}
|
||||
@ -31,10 +30,10 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// GET request for retrieving a region by its ID.
|
||||
/// </summary>
|
||||
|
||||
[HttpGet("{Id}")]
|
||||
public async Task<ActionResult> GetRegionAsync(string Id)
|
||||
[HttpGet("regions/{id}")]
|
||||
public async Task<ActionResult> GetRegionAsync(int id)
|
||||
{
|
||||
var result = await this.regionProvider.GetRegionByIdAsync(Id);
|
||||
var result = await this.regionProvider.GetRegionByIdAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Region);
|
||||
@ -45,7 +44,7 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// POST request for creating a new region.
|
||||
/// </summary>
|
||||
|
||||
[HttpPost]
|
||||
[HttpPost("regions")]
|
||||
public async Task<ActionResult> PostRegionAsync(Models.Region region)
|
||||
{
|
||||
var result = await this.regionProvider.PostRegionAsync(region);
|
||||
@ -59,10 +58,10 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// PUT request for updating an existing region.
|
||||
/// </summary>
|
||||
|
||||
[HttpPut]
|
||||
public async Task<ActionResult> PutRegionAsync(Models.Region region)
|
||||
[HttpPut("regions/{id}")]
|
||||
public async Task<ActionResult> PutRegionAsync(int id, Models.Region region)
|
||||
{
|
||||
var result = await this.regionProvider.PutRegionAsync(region);
|
||||
var result = await this.regionProvider.PutRegionAsync(id,region);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Region);
|
||||
@ -77,10 +76,10 @@ namespace DamageAssesment.Api.Locations.Controllers
|
||||
/// </summary>
|
||||
|
||||
|
||||
[HttpDelete("{Id}")]
|
||||
public async Task<ActionResult> DeleteRegionAsync(string Id)
|
||||
[HttpDelete("regions/{id}")]
|
||||
public async Task<ActionResult> DeleteRegionAsync(int id)
|
||||
{
|
||||
var result = await this.regionProvider.DeleteRegionAsync(Id);
|
||||
var result = await this.regionProvider.DeleteRegionAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Region);
|
||||
|
@ -6,18 +6,20 @@ namespace DamageAssesment.Api.Locations.Db
|
||||
public class Location
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
[ForeignKey("Region")]
|
||||
public int RegionId { get; set; }
|
||||
[StringLength(4)]
|
||||
public string Id { get; set; }
|
||||
public string LocationCode { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string Name { get; set; }
|
||||
|
||||
[StringLength(1)]
|
||||
[StringLength(4)]
|
||||
public string MaintenanceCenter { get; set; }
|
||||
|
||||
[StringLength(2)]
|
||||
public string SchoolType { get; set; }
|
||||
[ForeignKey("Region")]
|
||||
public string RegionId { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -10,5 +10,17 @@ namespace DamageAssesment.Api.Locations.Db
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
base.OnModelCreating(modelBuilder);
|
||||
modelBuilder.Entity<Location>()
|
||||
.Property(item => item.Id)
|
||||
.ValueGeneratedOnAdd();
|
||||
modelBuilder.Entity<Region>()
|
||||
.Property(item => item.Id)
|
||||
.ValueGeneratedOnAdd();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,15 +5,12 @@ namespace DamageAssesment.Api.Locations.Db
|
||||
public class Region
|
||||
{
|
||||
[Key]
|
||||
[StringLength(2)]
|
||||
public string Id { get; set; }
|
||||
public int Id { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string Name { get; set; }
|
||||
|
||||
[StringLength(5)]
|
||||
public string Abbreviation { get; set; }
|
||||
|
||||
// public ICollection<Location> Locations { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -4,11 +4,11 @@ namespace DamageAssesment.Api.Locations.Interfaces
|
||||
{
|
||||
public interface ILocationsProvider
|
||||
{
|
||||
Task<(bool IsSuccess, IEnumerable<Models.Location> locations, string ErrorMessage)> GetLocationsAsync();
|
||||
Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(string Id);
|
||||
Task<(bool IsSuccess, Models.Location Question, string ErrorMessage)> PostLocationAsync(Models.Location Location);
|
||||
Task<(bool IsSuccess, string ErrorMessage)> UpdateLocationAsync(Models.Location Location);
|
||||
Task<(bool IsSuccess, string ErrorMessage)> DeleteLocationAsync(string Id);
|
||||
Task<(bool IsSuccess, IEnumerable<Models.Location> Locations, string ErrorMessage)> GetLocationsAsync();
|
||||
Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(int Id);
|
||||
Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> PostLocationAsync(Models.Location Location);
|
||||
Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> UpdateLocationAsync(int Id, Models.Location Location);
|
||||
Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> DeleteLocationAsync(int Id);
|
||||
void SeedData();
|
||||
}
|
||||
}
|
||||
|
@ -2,11 +2,11 @@
|
||||
{
|
||||
public interface IRegionsProvider
|
||||
{
|
||||
Task<(bool IsSuccess, IEnumerable<Models.Region> regions, string ErrorMessage)> GetRegionsAsync();
|
||||
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(string Id);
|
||||
Task<(bool IsSuccess, IEnumerable<Models.Region> Regions, string ErrorMessage)> GetRegionsAsync();
|
||||
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(int Id);
|
||||
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PostRegionAsync(Models.Region region);
|
||||
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(Models.Region region);
|
||||
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(string Id);
|
||||
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(int Id, Models.Region region);
|
||||
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(int Id);
|
||||
void SeedData();
|
||||
}
|
||||
}
|
||||
|
@ -4,19 +4,12 @@ namespace DamageAssesment.Api.Locations.Models
|
||||
{
|
||||
public class Location
|
||||
{
|
||||
[StringLength(4)]
|
||||
public string Id { get; set; }
|
||||
|
||||
[StringLength(1)]
|
||||
public string RegionId { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
public int RegionId { get; set; }
|
||||
public string LocationCode { get; set; }
|
||||
public string Name { get; set; }
|
||||
|
||||
[StringLength(1)]
|
||||
public string MaintenanceCenter { get; set; }
|
||||
|
||||
[StringLength(2)]
|
||||
public string SchoolType { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -4,14 +4,8 @@ namespace DamageAssesment.Api.Locations.Models
|
||||
{
|
||||
public class Region
|
||||
{
|
||||
|
||||
[StringLength(1)]
|
||||
public string Id { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
|
||||
[StringLength(5)]
|
||||
public string Abbreviation { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
public LocationProfile()
|
||||
{
|
||||
CreateMap<Db.Location, Models.Location>();
|
||||
CreateMap<Models.Location, Db.Location>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,39 +20,16 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
//SeedData();
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, IEnumerable<Models.Location> locations, string ErrorMessage)> GetLocationsAsync()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
logger?.LogInformation("Query Question");
|
||||
var Location = await locationDbContext.Locations.AsNoTracking().ToListAsync();
|
||||
if (Location != null)
|
||||
{
|
||||
logger?.LogInformation($"{Location.Count} Locations(s) found");
|
||||
var result = mapper.Map<IEnumerable<Db.Location>, IEnumerable<Models.Location>>(Location);
|
||||
return (true, result, null);
|
||||
}
|
||||
return (false, null, "Not found");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger?.LogError(ex.ToString());
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(string Id)
|
||||
public async Task<(bool IsSuccess, IEnumerable<Models.Location> Locations, string ErrorMessage)> GetLocationsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
logger?.LogInformation("Query Location");
|
||||
var Location = await locationDbContext.Locations.AsNoTracking().FirstOrDefaultAsync(q => q.Id == Id);
|
||||
if (Location != null)
|
||||
var locations = await locationDbContext.Locations.AsNoTracking().ToListAsync();
|
||||
if (locations != null)
|
||||
{
|
||||
logger?.LogInformation($"{Location} customer(s) found");
|
||||
var result = mapper.Map<Db.Location, Models.Location>(Location);
|
||||
logger?.LogInformation($"{locations.Count} Locations(s) found");
|
||||
var result = mapper.Map<IEnumerable<Db.Location>, IEnumerable<Models.Location>>(locations);
|
||||
return (true, result, null);
|
||||
}
|
||||
return (false, null, "Not found");
|
||||
@ -63,21 +40,42 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.Location Question, string ErrorMessage)> PostLocationAsync(Models.Location Location)
|
||||
|
||||
public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(int Id)
|
||||
{
|
||||
try
|
||||
{
|
||||
logger?.LogInformation("Query Location");
|
||||
if (!LocationExists(Location.Id))
|
||||
var location = await locationDbContext.Locations.AsNoTracking().FirstOrDefaultAsync(q => q.Id == Id);
|
||||
if (location != null)
|
||||
{
|
||||
Db.Location _location = mapper.Map<Models.Location, Db.Location>(Location);
|
||||
logger?.LogInformation($"{location} found");
|
||||
var result = mapper.Map<Db.Location, Models.Location>(location);
|
||||
return (true, result, null);
|
||||
}
|
||||
return (false, null, "Not found");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger?.LogError(ex.ToString());
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> PostLocationAsync(Models.Location location)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!LocationCodeExists(location.LocationCode))
|
||||
{
|
||||
Db.Location _location = mapper.Map<Models.Location, Db.Location>(location);
|
||||
locationDbContext.Locations.Add(_location);
|
||||
locationDbContext.SaveChanges();
|
||||
return (true, Location, null);
|
||||
await locationDbContext.SaveChangesAsync();
|
||||
location.Id = _location.Id;
|
||||
return (true, location, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (false, null, "Location is Already exists");
|
||||
return (false, null, "Location code is already exists");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -86,57 +84,67 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, string ErrorMessage)> UpdateLocationAsync(Models.Location Location)
|
||||
public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> UpdateLocationAsync(int Id, Models.Location location)
|
||||
{
|
||||
try
|
||||
{
|
||||
Db.Location _location = mapper.Map<Models.Location, Db.Location>(Location);
|
||||
if (LocationExists(Id))
|
||||
{
|
||||
Db.Location _location = mapper.Map<Models.Location, Db.Location>(location);
|
||||
locationDbContext.Entry(_location).State = EntityState.Modified;
|
||||
locationDbContext.SaveChanges();
|
||||
return (true, "Record updated successfully");
|
||||
await locationDbContext.SaveChangesAsync();
|
||||
return (true, location, "Record updated successfully");
|
||||
}
|
||||
else
|
||||
{
|
||||
return (false, null, "Location is not exists");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
logger?.LogError(ex.ToString());
|
||||
return (false, ex.Message);
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, string ErrorMessage)> DeleteLocationAsync(string Id)
|
||||
public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> DeleteLocationAsync(int Id)
|
||||
{
|
||||
try
|
||||
{
|
||||
Db.Location Location = locationDbContext.Locations.AsNoTracking().Where(a => a.Id == Id).FirstOrDefault();
|
||||
if (Location == null)
|
||||
Db.Location location = locationDbContext.Locations.AsNoTracking().Where(a => a.Id == Id).FirstOrDefault();
|
||||
if (location == null)
|
||||
{
|
||||
return (false, "record not found");
|
||||
return (false, null, "record not found");
|
||||
}
|
||||
locationDbContext.Locations.Remove(Location);
|
||||
locationDbContext.SaveChanges();
|
||||
return (true, "Record deleted successfully");
|
||||
locationDbContext.Locations.Remove(location);
|
||||
await locationDbContext.SaveChangesAsync();
|
||||
return (true, mapper.Map<Db.Location, Models.Location>(location), "Record deleted successfully");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
logger?.LogError(ex.ToString());
|
||||
return (false, ex.Message);
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private bool LocationExists(string id)
|
||||
private bool LocationExists(int id)
|
||||
{
|
||||
return locationDbContext.Locations.AsNoTracking().Count(e => e.Id == id) > 0;
|
||||
}
|
||||
|
||||
private bool LocationCodeExists(string locationCode)
|
||||
{
|
||||
return locationDbContext.Locations.AsNoTracking().Count(e => e.LocationCode.ToLower() == locationCode.ToLower()) > 0;
|
||||
}
|
||||
public void SeedData()
|
||||
{
|
||||
if (!locationDbContext.Locations.Any())
|
||||
{
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = "Loc1", RegionId = "1", Name = "BOB GRAHAM EDUCATION CENTER 1", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = "Loc2", RegionId = "2", Name = "BOB GRAHAM EDUCATION CENTER 2", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = "Loc3", RegionId = "3", Name = "BOB GRAHAM EDUCATION CENTER 3", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = "Loc4", RegionId = "1", Name = "BOB GRAHAM EDUCATION CENTER 4", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = "Loc5", RegionId = "2", Name = "BOB GRAHAM EDUCATION CENTER 5", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = "Loc6", RegionId = "3", Name = "BOB GRAHAM EDUCATION CENTER 6", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = 1, LocationCode = "Loc1", RegionId = 1, Name = "BOB GRAHAM EDUCATION CENTER 1", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = 2, LocationCode = "Loc2", RegionId = 2, Name = "BOB GRAHAM EDUCATION CENTER 2", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = 3, LocationCode = "Loc3", RegionId = 3, Name = "BOB GRAHAM EDUCATION CENTER 3", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = 4, LocationCode = "Loc4", RegionId = 1, Name = "BOB GRAHAM EDUCATION CENTER 4", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = 5, LocationCode = "Loc5", RegionId = 2, Name = "BOB GRAHAM EDUCATION CENTER 5", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.Locations.Add(new Db.Location() { Id = 6, LocationCode = "Loc6", RegionId = 3, Name = "BOB GRAHAM EDUCATION CENTER 6", MaintenanceCenter = "1", SchoolType = "US" });
|
||||
locationDbContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
//SeedData();
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(string Id)
|
||||
public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(int Id)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -41,7 +41,7 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, IEnumerable<Models.Region> regions, string ErrorMessage)> GetRegionsAsync()
|
||||
public async Task<(bool IsSuccess, IEnumerable<Models.Region> Regions, string ErrorMessage)> GetRegionsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -69,11 +69,10 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
{
|
||||
if (region != null)
|
||||
{
|
||||
var regions = await locationDbContext.Regions.AsNoTracking().ToListAsync();
|
||||
|
||||
region.Id = Convert.ToString(regions.Count + 1);
|
||||
locationDbContext.Regions.Add(mapper.Map<Models.Region, Db.Region>(region));
|
||||
locationDbContext.SaveChanges();
|
||||
var _region = mapper.Map<Models.Region, Db.Region>(region);
|
||||
locationDbContext.Regions.Add(_region);
|
||||
await locationDbContext.SaveChangesAsync();
|
||||
region.Id = _region.Id;
|
||||
logger?.LogInformation($"{region} added successfuly");
|
||||
return (true, region, "Successful");
|
||||
}
|
||||
@ -90,15 +89,17 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(Models.Region region)
|
||||
public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(int Id, Models.Region region)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (region != null)
|
||||
{
|
||||
var _region = await locationDbContext.Regions.AsNoTracking().Where(s => s.Id == region.Id).FirstOrDefaultAsync();
|
||||
var _region = await locationDbContext.Regions.AsNoTracking().Where(s => s.Id == Id).FirstOrDefaultAsync();
|
||||
|
||||
if (_region != null)
|
||||
{
|
||||
if (RegionExists(region.Id))
|
||||
{
|
||||
locationDbContext.Regions.Update(mapper.Map<Models.Region, Db.Region>(region));
|
||||
locationDbContext.SaveChanges();
|
||||
@ -106,14 +107,20 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
}
|
||||
else
|
||||
{
|
||||
logger?.LogInformation($"RegionID: {region.Id} Not found");
|
||||
logger?.LogInformation($"RegionID: {Id} Not exists");
|
||||
return (false, null, "Region not exists");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger?.LogInformation($"RegionID: {Id} Not found");
|
||||
return (false, null, "Not Found");
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
logger?.LogInformation($"RegionID: {region.Id} Bad Request");
|
||||
logger?.LogInformation($"RegionID: {Id} Bad Request");
|
||||
return (false, null, "Bad request");
|
||||
}
|
||||
}
|
||||
@ -124,7 +131,7 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(string Id)
|
||||
public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(int Id)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -149,13 +156,18 @@ namespace DamageAssesment.Api.Locations.Providers
|
||||
}
|
||||
}
|
||||
|
||||
private bool RegionExists(int id)
|
||||
{
|
||||
return locationDbContext.Regions.AsNoTracking().Count(e => e.Id == id) > 0;
|
||||
}
|
||||
|
||||
public void SeedData()
|
||||
{
|
||||
if (!locationDbContext.Regions.Any())
|
||||
{
|
||||
locationDbContext.Regions.Add(new Db.Region() { Id = "1", Name = "North", Abbreviation = "N" });
|
||||
locationDbContext.Regions.Add(new Db.Region() { Id = "2", Name = "South", Abbreviation = "S" });
|
||||
locationDbContext.Regions.Add(new Db.Region() { Id = "3", Name = "Central", Abbreviation = "C" });
|
||||
locationDbContext.Regions.Add(new Db.Region() { Id = 1, Name = "North", Abbreviation = "N" });
|
||||
locationDbContext.Regions.Add(new Db.Region() { Id = 2, Name = "South", Abbreviation = "S" });
|
||||
locationDbContext.Regions.Add(new Db.Region() { Id = 3, Name = "Central", Abbreviation = "C" });
|
||||
locationDbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
[Route("Questions/{id}/{language:alpha}")]
|
||||
[Route("Questions/{id:int}")]
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> GetQuestionByIdAsync(string? language,int id)
|
||||
public async Task<IActionResult> GetQuestionByIdAsync(int id, string? language)
|
||||
{
|
||||
var result = await this.questionsProvider.GetQuestionAsync(id, language);
|
||||
if (result.IsSuccess)
|
||||
|
@ -4,12 +4,12 @@ namespace DamageAssesment.Api.Questions.Interfaces
|
||||
{
|
||||
public interface IQuestionsProvider : IQuestionTypesProvider
|
||||
{
|
||||
Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> GetQuestionAsync(int id, string language);
|
||||
Task<(bool IsSuccess, IEnumerable<Models.MultiLanQuestion> Questions, string ErrorMessage)> GetQuestionsAsync(string language);
|
||||
Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> GetQuestionAsync(int id, string language);
|
||||
Task<(bool IsSuccess, IEnumerable<Models.MultiLanguage> Questions, string ErrorMessage)> GetQuestionsAsync(string language);
|
||||
Task<(bool IsSuccess, List<SurveyQuestions> SurveyQuestions, string ErrorMessage)> GetSurveyQuestionAsync(int surveyId,string language);
|
||||
Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question);
|
||||
Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question);
|
||||
Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> DeleteQuestionAsync(int id);
|
||||
Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question);
|
||||
Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question);
|
||||
Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> DeleteQuestionAsync(int id);
|
||||
|
||||
|
||||
Task<(bool IsSuccess, IEnumerable<Models.MultiLanQuestionCategory> QuestionCategories, string ErrorMessage)> GetQuestionCategoriesAsync(string? language);
|
||||
|
@ -1,11 +1,5 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace DamageAssesment.Api.Questions.Models
|
||||
namespace DamageAssesment.Api.Questions.Models
|
||||
{
|
||||
public class MultiLanQuestion: BaseQuestion
|
||||
{
|
||||
public MultiLanguage Questions { get; set; }
|
||||
}
|
||||
public class Question: BaseQuestion
|
||||
{
|
||||
public List<QuestionsTranslation> Questions { get; set; }
|
||||
@ -13,17 +7,12 @@ namespace DamageAssesment.Api.Questions.Models
|
||||
public class BaseQuestion
|
||||
{
|
||||
public int Id { get; set; }
|
||||
//public int QuestionTypeID { get; set; }
|
||||
|
||||
public string TypeText { get; set; } = string.Empty;
|
||||
|
||||
public int QuestionNumber { get; set; }
|
||||
public bool IsRequired { get; set; }
|
||||
public bool Comment { get; set; }
|
||||
|
||||
public bool Key { get; set; }
|
||||
public int? SurveyId { get; set; }
|
||||
public int CategoryId { get; set; }
|
||||
// public int? Survey_SurveyID { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -3,10 +3,10 @@
|
||||
public class QuestionsTranslation
|
||||
{
|
||||
public string QuestionText { get; set; }
|
||||
public string Language { get; set; } = "En";
|
||||
public string Language { get; set; } = "en";
|
||||
}
|
||||
public class MultiLanguage
|
||||
public class MultiLanguage : BaseQuestion
|
||||
{
|
||||
public object questionText { get; set; }
|
||||
public Dictionary<string,string> Text { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,6 @@
|
||||
public int CategoryId { get; set; }
|
||||
public string IconName { get; set; }
|
||||
public string IconLibrary { get; set; }
|
||||
public List<MultiLanQuestion> Questions { get; set; }
|
||||
public List<MultiLanguage> QuestionsText { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ namespace DamageAssesment.Api.Questions.Profiles
|
||||
{
|
||||
CreateMap<Db.Question, Models.Question>().ForMember(dest => dest.TypeText,
|
||||
opt => opt.MapFrom(src => src.QuestionType.TypeText));
|
||||
CreateMap<Db.Question, Models.MultiLanQuestion>().ForMember(dest => dest.TypeText,
|
||||
CreateMap<Db.Question, Models.MultiLanguage>().ForMember(dest => dest.TypeText,
|
||||
opt => opt.MapFrom(src => src.QuestionType.TypeText));
|
||||
CreateMap<Models.QuestionCategory, Db.QuestionCategory>();
|
||||
CreateMap<Db.QuestionCategory, Models.MultiLanQuestionCategory>();
|
||||
|
@ -2,7 +2,6 @@ using DamageAssesment.Api.Questions.Db;
|
||||
using DamageAssesment.Api.Questions.Interfaces;
|
||||
using DamageAssesment.Api.Questions.Providers;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Options;
|
||||
using System.Reflection;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
@ -16,7 +15,6 @@ builder.Services.AddControllers();
|
||||
builder.Services.AddScoped<IQuestionsProvider, QuestionsProvider>();
|
||||
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
|
||||
|
||||
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
//builder.Services.AddSwaggerGen();
|
||||
builder.Services.AddSwaggerGen(c =>
|
||||
|
@ -2,11 +2,7 @@
|
||||
using DamageAssesment.Api.Questions.Db;
|
||||
using DamageAssesment.Api.Questions.Interfaces;
|
||||
using DamageAssesment.Api.Questions.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DamageAssesment.Api.Questions.Providers
|
||||
{
|
||||
@ -130,7 +126,7 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
}
|
||||
return QuestionTranslations;
|
||||
}
|
||||
public MultiLanguage CreateMultiLanguageObject(List<Models.QuestionsTranslation> questions)
|
||||
public Dictionary<string, string> CreateMultiLanguageObject(List<Models.QuestionsTranslation> questions)
|
||||
{
|
||||
MultiLanguage MultiLanguage = new MultiLanguage();
|
||||
Dictionary<string, string> dict = new Dictionary<string, string>();
|
||||
@ -138,10 +134,10 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
{
|
||||
dict.Add(item.Language, item.QuestionText);
|
||||
}
|
||||
MultiLanguage.questionText = dict;
|
||||
return MultiLanguage;
|
||||
//MultiLanguage.questionText = dict;
|
||||
return dict;
|
||||
}
|
||||
public async Task<(bool IsSuccess, IEnumerable<Models.MultiLanQuestion> Questions, string ErrorMessage)> GetQuestionsAsync(string language)
|
||||
public async Task<(bool IsSuccess, IEnumerable<Models.MultiLanguage> Questions, string ErrorMessage)> GetQuestionsAsync(string language)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -151,10 +147,10 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
{
|
||||
|
||||
//logger?.LogInformation($"{question} customer(s) found");
|
||||
var result = mapper.Map<IEnumerable<Db.Question>, IEnumerable<Models.MultiLanQuestion>>(questions);
|
||||
foreach (var question in result)
|
||||
var result = mapper.Map<IEnumerable<Db.Question>, IEnumerable<Models.MultiLanguage>>(questions);
|
||||
foreach (var item in result)
|
||||
{
|
||||
question.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(question.Id, language));
|
||||
item.Text = CreateMultiLanguageObject(GetQuestionsTranslations(item.Id, language));
|
||||
}
|
||||
return (true, result, null);
|
||||
}
|
||||
@ -166,7 +162,7 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> GetQuestionAsync(int id, string language)
|
||||
public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> GetQuestionAsync(int id, string language)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -175,8 +171,8 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
if (question != null)
|
||||
{
|
||||
logger?.LogInformation($"{question} customer(s) found");
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanQuestion>(question);
|
||||
result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(id, language));
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanguage>(question);
|
||||
result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(id, language));
|
||||
return (true, result, null);
|
||||
}
|
||||
return (false, null, "Not found");
|
||||
@ -187,11 +183,11 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public List<Models.MultiLanQuestion> GetSurveyQuestion(List<Models.MultiLanQuestion> questions, string language)
|
||||
public List<Models.MultiLanguage> GetSurveyQuestion(List<Models.MultiLanguage> questions, string language)
|
||||
{
|
||||
foreach (var item in questions)
|
||||
{
|
||||
item.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(item.Id, language));
|
||||
item.Text = CreateMultiLanguageObject(GetQuestionsTranslations(item.Id, language));
|
||||
}
|
||||
return questions;
|
||||
}
|
||||
@ -214,7 +210,7 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
CategoryId = item.Id,
|
||||
IconLibrary = item.IconLibrary,
|
||||
IconName = item.IconName,
|
||||
Questions = GetSurveyQuestion(mapper.Map<List<Db.Question>, List<Models.MultiLanQuestion>>(questions.Where(a => a.CategoryId == item.Id).ToList()), language)
|
||||
QuestionsText = GetSurveyQuestion(mapper.Map<List<Db.Question>, List<Models.MultiLanguage>>(questions.Where(a => a.CategoryId == item.Id).ToList()), language)
|
||||
});
|
||||
}
|
||||
|
||||
@ -229,7 +225,7 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question)
|
||||
public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -242,8 +238,8 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
questionDbContext.QuestionsTranslations.AddRange(dbquestiontranslation);
|
||||
questionDbContext.SaveChanges();
|
||||
Question.Id = dbquestion.Id;
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanQuestion>(dbquestion);
|
||||
result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id,""));
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanguage>(dbquestion);
|
||||
result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id,""));
|
||||
return (true, result, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -252,7 +248,7 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question)
|
||||
public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -266,8 +262,8 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
dbquestiontranslation.ForEach(i => i.QuestionId = dbquestion.Id);
|
||||
questionDbContext.QuestionsTranslations.AddRange(dbquestiontranslation);
|
||||
questionDbContext.SaveChanges();
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanQuestion>(dbquestion);
|
||||
result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanguage>(dbquestion);
|
||||
result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
|
||||
return (true, result, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -277,7 +273,7 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> DeleteQuestionAsync(int id)
|
||||
public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> DeleteQuestionAsync(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -285,8 +281,8 @@ namespace DamageAssesment.Api.Questions.Providers
|
||||
|
||||
if (question != null)
|
||||
{
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanQuestion>(question);
|
||||
result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
|
||||
var result = mapper.Map<Db.Question, Models.MultiLanguage>(question);
|
||||
result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
|
||||
questionDbContext.Questions.Remove(question);
|
||||
questionDbContext.SaveChanges();
|
||||
return (true, result, $"QuestionID {id} deleted Successfuly");
|
||||
|
@ -5,13 +5,13 @@ namespace DamageAssesment.Api.Questions.Test
|
||||
public class MockData
|
||||
{
|
||||
|
||||
public static async Task<(bool, IEnumerable<Questions.Models.MultiLanQuestion>, string)> getOkResponse()
|
||||
public static async Task<(bool, IEnumerable<Questions.Models.MultiLanguage>, string)> getOkResponse()
|
||||
{
|
||||
IEnumerable<Questions.Models.MultiLanQuestion> list = new List<Questions.Models.MultiLanQuestion>();
|
||||
IEnumerable<Questions.Models.MultiLanguage> list = new List<Questions.Models.MultiLanguage>();
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
list.Append(new Questions.Models.MultiLanQuestion { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId=i });
|
||||
list.Append(new Questions.Models.MultiLanguage { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId=i });
|
||||
}
|
||||
return (true, list, null);
|
||||
}
|
||||
@ -23,38 +23,38 @@ namespace DamageAssesment.Api.Questions.Test
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
List<Models.MultiLanQuestion> question = new List<Models.MultiLanQuestion>();
|
||||
question.Add(new Models.MultiLanQuestion { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId = i });
|
||||
List<Models.MultiLanguage> question = new List<Models.MultiLanguage>();
|
||||
question.Add(new Models.MultiLanguage { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId = i });
|
||||
list.Append(new Questions.Models.SurveyQuestions
|
||||
{
|
||||
CategoryId = i,
|
||||
IconLibrary = "img" + i,
|
||||
IconName = "Category " + i,
|
||||
Questions = question
|
||||
QuestionsText = question
|
||||
});
|
||||
}
|
||||
return (true, list, null);
|
||||
}
|
||||
|
||||
public static async Task<(bool, Questions.Models.MultiLanQuestion, string)> getOkResponse(int Id)
|
||||
public static async Task<(bool, Questions.Models.MultiLanguage, string)> getOkResponse(int Id)
|
||||
{
|
||||
var Questions = await getOkResponse();
|
||||
var Question = Questions.Item2.FirstOrDefault(s => s.Id == Id);
|
||||
return (true, Question, null);
|
||||
}
|
||||
|
||||
public static async Task<(bool, Questions.Models.MultiLanQuestion, string)> getBadRequestResponse()
|
||||
public static async Task<(bool, Questions.Models.MultiLanguage, string)> getBadRequestResponse()
|
||||
{
|
||||
return (false, null, "Bad Request");
|
||||
}
|
||||
|
||||
public static async Task<(bool, Questions.Models.MultiLanQuestion, string)> getNotFoundResponse()
|
||||
public static async Task<(bool, Questions.Models.MultiLanguage, string)> getNotFoundResponse()
|
||||
{
|
||||
return (false, null, "Not Found");
|
||||
}
|
||||
public static async Task<(bool, IEnumerable<Questions.Models.MultiLanQuestion>, string)> getNoContentResponse()
|
||||
public static async Task<(bool, IEnumerable<Questions.Models.MultiLanguage>, string)> getNoContentResponse()
|
||||
{
|
||||
IEnumerable<Questions.Models.MultiLanQuestion> list = new List<Questions.Models.MultiLanQuestion>();
|
||||
IEnumerable<Questions.Models.MultiLanguage> list = new List<Questions.Models.MultiLanguage>();
|
||||
return (false, list, null);
|
||||
}
|
||||
public static async Task<(bool, List<Questions.Models.SurveyQuestions>, string)> getNoSurveyContentResponse()
|
||||
|
@ -6,7 +6,6 @@ using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
{
|
||||
[Route("api")]
|
||||
[ApiController]
|
||||
public class SurveyResponsesController : ControllerBase
|
||||
{
|
||||
@ -20,7 +19,7 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// GET request for retrieving survey responses.
|
||||
/// </summary>
|
||||
|
||||
[HttpGet("SurveyResponses")]
|
||||
[HttpGet("Responses")]
|
||||
public async Task<ActionResult> GetSurveyResponsesAsync()
|
||||
{
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponsesAsync();
|
||||
@ -38,10 +37,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// GET request for retrieving survey responses by survey ID.
|
||||
/// </summary>
|
||||
|
||||
[HttpGet("SurveyResponses/{surveyId}")]
|
||||
public async Task<ActionResult> GetSurveyResponsesAsync(int surveyId)
|
||||
[HttpGet("Responses/BySurvey/{surveyid}")]
|
||||
public async Task<ActionResult> GetSurveyResponsesAsync(int surveyid)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAsync(surveyId);
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAsync(surveyid);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.SurveyResponses);
|
||||
@ -51,13 +50,13 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// <summary>
|
||||
/// GET request for retrieving survey responses by survey and location IDs.
|
||||
/// </summary>
|
||||
/// <param name="surveyId">The ID of the survey for which responses are to be retrieved.</param>
|
||||
/// <param name="locationId">The ID of the location for which responses are to be retrieved.</param>
|
||||
/// <param name="surveyid">The ID of the survey for which responses are to be retrieved.</param>
|
||||
/// <param name="locationid">The ID of the location for which responses are to be retrieved.</param>
|
||||
|
||||
[HttpGet("Responses/{surveyId}/{locationId}")]
|
||||
public async Task<ActionResult> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, string locationId)
|
||||
[HttpGet("Responses/{surveyid}/{locationid}")]
|
||||
public async Task<ActionResult> GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyId, locationId);
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.SurveyResponses);
|
||||
@ -72,10 +71,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// <param name="questionId">The ID of the question for which responses are to be retrieved.</param>
|
||||
/// <param name="answer">The answer for which responses are to be retrieved.</param>
|
||||
|
||||
[HttpGet("ResponsesByAnswer/{surveyId}/{questionId}/{answer}")]
|
||||
public async Task<ActionResult> GetSurveyResponsesByAnswerAsyncAsync(int surveyId, int questionId, string answer)
|
||||
[HttpGet("Responses/ByAnswer/{surveyid}/{questionid}/{answer}")]
|
||||
public async Task<ActionResult> GetSurveyResponsesByAnswerAsyncAsync(int surveyid, int questionid, string answer)
|
||||
{
|
||||
var result = await surveyResponseProvider.GetResponsesByAnswerAsync(surveyId, questionId, answer);
|
||||
var result = await surveyResponseProvider.GetResponsesByAnswerAsync(surveyid, questionid, answer);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.SurveyResponses);
|
||||
@ -88,10 +87,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// </summary>
|
||||
/// <param name="surveyId">The ID of the survey for which answers are to be retrieved.</param>
|
||||
|
||||
[HttpGet("AnswersByRegion/{surveyId}")]
|
||||
public async Task<ActionResult> GetAnswersByRegionAsync(int surveyId)
|
||||
[HttpGet("Responses/ByRegion/{surveyid}")]
|
||||
public async Task<ActionResult> GetAnswersByRegionAsync(int surveyid)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.GetAnswersByRegionAsync(surveyId);
|
||||
var result = await this.surveyResponseProvider.GetAnswersByRegionAsync(surveyid);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Answers);
|
||||
@ -103,10 +102,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// </summary>
|
||||
/// <param name="surveyId">The ID of the survey for which responses are to be retrieved.</param>
|
||||
|
||||
[HttpGet("AnswersByMaintenanceCenter/{surveyId}")]
|
||||
public async Task<ActionResult> GetAnswersByMaintenaceCentersync(int surveyId)
|
||||
[HttpGet("Responses/ByMaintenanceCenter/{surveyid}")]
|
||||
public async Task<ActionResult> GetAnswersByMaintenaceCentersync(int surveyid)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponsesByMaintenanceCenterAsync(surveyId);
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponsesByMaintenanceCenterAsync(surveyid);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.SurveyResponses);
|
||||
@ -118,10 +117,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// </summary>
|
||||
/// <param name="responseId">The ID of the survey response to be retrieved.</param>
|
||||
|
||||
[HttpGet("SurveyResponse/{Id}")]
|
||||
public async Task<ActionResult> GetSurveyResponseByIdAsync(int Id)
|
||||
[HttpGet("Responses/{id}")]
|
||||
public async Task<ActionResult> GetSurveyResponseByIdAsync(int id)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponseByIdAsync(Id);
|
||||
var result = await this.surveyResponseProvider.GetSurveyResponseByIdAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.SurveyResponse);
|
||||
@ -134,7 +133,7 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// </summary>
|
||||
/// <param name="surveyResponse">The survey response object to be created.</param>
|
||||
|
||||
[HttpPost("SurveyResponses")]
|
||||
[HttpPost("Responses")]
|
||||
public async Task<ActionResult> PostSurveysAsync(Models.SurveyResponse surveyResponse)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.PostSurveyResponseAsync(surveyResponse);
|
||||
@ -150,10 +149,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// <param name="Id">The ID of the survey response to be updated.</param>
|
||||
/// <param name="surveyResponse">The updated survey response object.</param>
|
||||
|
||||
[HttpPut("SurveyResponses/{Id}")]
|
||||
public async Task<ActionResult> PutSurveyResponseAsync(int Id, Models.SurveyResponse surveyResponse)
|
||||
[HttpPut("Responses/{id}")]
|
||||
public async Task<ActionResult> PutSurveyResponseAsync(int id, Models.SurveyResponse surveyResponse)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.PutSurveyResponseAsync(Id, surveyResponse);
|
||||
var result = await this.surveyResponseProvider.PutSurveyResponseAsync(id, surveyResponse);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.SurveyResponse);
|
||||
@ -167,10 +166,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// DELETE request for deleting an existing survey response.
|
||||
/// </summary>
|
||||
|
||||
[HttpDelete("SurveyResponses/{Id}")]
|
||||
public async Task<ActionResult> DeleteSurveyResponseAsync(int Id)
|
||||
[HttpDelete("Responses/{id}")]
|
||||
public async Task<ActionResult> DeleteSurveyResponseAsync(int id)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.DeleteSurveyResponseAsync(Id);
|
||||
var result = await this.surveyResponseProvider.DeleteSurveyResponseAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.SurveyResponse);
|
||||
@ -182,7 +181,7 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
|
||||
/// </summary>
|
||||
/// <param name="request">The answers to be submitted for the survey.</param>
|
||||
|
||||
[HttpPost("SurveyResponses/Answers")]
|
||||
[HttpPost("Responses/Answers")]
|
||||
public async Task<ActionResult> PostSurveyAnswersAsync(Request request)
|
||||
{
|
||||
var result = await this.surveyResponseProvider.PostSurveyAnswersAsync(request);
|
||||
|
@ -10,14 +10,12 @@ namespace DamageAssesment.Api.SurveyResponses.Db
|
||||
|
||||
[ForeignKey("Survey")]
|
||||
public int SurveyId { get; set; }
|
||||
|
||||
[StringLength(4)]
|
||||
[ForeignKey("Location")]
|
||||
public string LocationId { get; set; }
|
||||
public int LocationId { get; set; }
|
||||
|
||||
[StringLength(6)]
|
||||
[ForeignKey("Employee")]
|
||||
public string EmployeeId { get; set; }
|
||||
public int EmployeeId { get; set; }
|
||||
|
||||
public DateTime? CreatedDate { get; set; } = DateTime.Now;
|
||||
|
||||
|
@ -5,6 +5,6 @@ namespace DamageAssesment.Api.SurveyResponses.Interfaces
|
||||
public interface IEmployeeServiceProvider
|
||||
{
|
||||
Task<List<Employee>> getEmployeesAsync();
|
||||
Task<Employee> getEmployeeAsync(string employeeID);
|
||||
Task<Employee> getEmployeeAsync(int employeeId);
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ namespace DamageAssesment.Api.SurveyResponses.Interfaces
|
||||
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> DeleteSurveyResponseAsync(int Id);
|
||||
Task<(bool IsSuccess, dynamic SurveyResponse, string ErrorMessage)> GetSurveyResponseByIdAsync(int responseId);
|
||||
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAsync(int surveyId);
|
||||
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, string location);
|
||||
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, int locationId);
|
||||
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesByMaintenanceCenterAsync(int surveyId);
|
||||
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetResponsesByAnswerAsync(int surveyId, int questionId, string answer);
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class AggregateAnswer
|
||||
{
|
||||
public string? Answer { get; set; }
|
||||
public int Counter { get; set; }
|
||||
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class AggregateResult
|
||||
{
|
||||
public string RegionId { get; set; }
|
||||
public AggregateAnswer Answers { get; set; }
|
||||
|
||||
}
|
||||
}
|
@ -6,11 +6,11 @@ namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int QuestionId { get; set; }
|
||||
public string? LocationId { get; set; }
|
||||
public int LocationId { get; set; }
|
||||
public string AnswerText { get; set; }
|
||||
public string? Comment { get; set; }
|
||||
public string Comment { get; set; }
|
||||
public int SurveyResponseId { get; set; }
|
||||
public string? RegionId { get; set; }
|
||||
public int RegionId { get; set; }
|
||||
// public string? Name { get; set; }
|
||||
// public string? Abbreviation { get; set; }
|
||||
|
||||
|
@ -1,13 +0,0 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class AnswerData
|
||||
{
|
||||
public string RegionId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Abbreviation { get; set; }
|
||||
public List<AggregateAnswer> Answers { get; set; }
|
||||
|
||||
}
|
||||
}
|
@ -4,18 +4,13 @@ namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class Employee
|
||||
{
|
||||
public string Id { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public int Id { get; set; }
|
||||
public string EmployeeCode { get; set; }
|
||||
public string Name { get; set; }
|
||||
|
||||
public DateTime BirthDate { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string OfficePhoneNumber { get; set; }
|
||||
|
||||
[StringLength(50)]
|
||||
public string Email { get; set; }
|
||||
public bool IsActive { get; set; }
|
||||
public string? PreferredLanguage { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,8 @@
|
||||
{
|
||||
public class Location
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public string RegionId { get; set; }
|
||||
public int Id { get; set; }
|
||||
public int RegionId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string MaintenanceCenter { get; set; }
|
||||
public string SchoolType { get; set; }
|
||||
|
@ -1,24 +1,17 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class Question
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public List<QuestionsTranslation> Questions { get; set; }
|
||||
|
||||
//public int QuestionTypeID { get; set; }
|
||||
|
||||
public string TypeText { get; set; } = string.Empty;
|
||||
|
||||
public string TypeText { get; set; }
|
||||
public int QuestionNumber { get; set; }
|
||||
public bool IsRequired { get; set; }
|
||||
public bool Comment { get; set; }
|
||||
|
||||
public bool Key { get; set; }
|
||||
public int? SurveyId { get; set; }
|
||||
//public string QuestionGroup { get; set; }
|
||||
public int SurveyId { get; set; }
|
||||
public int CategoryId { get; set; }
|
||||
// public int? Survey_SurveyID { get; set; }
|
||||
public Dictionary<string, string> Text { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +0,0 @@
|
||||
namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class QuestionsTranslation
|
||||
{
|
||||
public string QuestionText { get; set; }
|
||||
public string Language { get; set; } = "En";
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class Region
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Abbreviation { get; set; }
|
||||
}
|
||||
|
@ -3,8 +3,13 @@
|
||||
public class Request
|
||||
{
|
||||
public int SurveyId { get; set; }
|
||||
public string LocationId { get; set; }
|
||||
public string EmployeeId { get; set; }
|
||||
public int LocationId { get; set; }
|
||||
public int EmployeeId { get; set; }
|
||||
public string? ClientDevice { get; set; }
|
||||
public string? KeyAnswerResult { get; set; }
|
||||
public double? Longitute { get; set; }
|
||||
public double? Latitude { get; set; }
|
||||
public DateTime? CreatedDate { get; set; } = DateTime.Now;
|
||||
public List<AnswerRequest> Answers { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public class ResultData
|
||||
{
|
||||
public List<AnswerData> Regions { get; set; }
|
||||
|
||||
}
|
||||
}
|
@ -6,9 +6,9 @@ namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public bool IsEnabled { get; set; }
|
||||
public DateTime? StartDate { get; set; }
|
||||
public DateTime? EndDate { get; set; }
|
||||
public DateTime StartDate { get; set; }
|
||||
public DateTime EndDate { get; set; }
|
||||
public DateTime CreatedDate { get; set; }
|
||||
public IEnumerable<SurveyTranslation> Titles { get; set; }
|
||||
public Dictionary<string, string> Titles { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -7,12 +7,12 @@ namespace DamageAssesment.Api.SurveyResponses.Models
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int SurveyId { get; set; }
|
||||
public string LocationId { get; set; }
|
||||
public string EmployeeId { get; set; }
|
||||
public DateTime? CreatedDate { get; set; }
|
||||
public string? ClientDevice { get; set; }
|
||||
public string? KeyAnswerResult { get; set; }
|
||||
public double? Longitute { get; set; }
|
||||
public double? Latitude { get; set; }
|
||||
public int LocationId { get; set; }
|
||||
public int EmployeeId { get; set; }
|
||||
public DateTime CreatedDate { get; set; }
|
||||
public string ClientDevice { get; set; }
|
||||
public string KeyAnswerResult { get; set; }
|
||||
public double Longitute { get; set; }
|
||||
public double Latitude { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -38,12 +38,12 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
{
|
||||
if (!surveyResponseDbContext.SurveyResponses.Any())
|
||||
{
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 1, SurveyId = 1, EmployeeId = "Emp1", LocationId = "Loc1", ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 2, SurveyId = 1, EmployeeId = "Emp2", LocationId = "Loc2", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 3, SurveyId = 3, EmployeeId = "Emp4", LocationId = "Loc1", ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 4, SurveyId = 4, EmployeeId = "Emp1", LocationId = "Loc2", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 6, SurveyId = 1, EmployeeId = "Emp4", LocationId = "Loc2", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 7, SurveyId = 1, EmployeeId = "Emp4", LocationId = "Loc3", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 1, SurveyId = 1, EmployeeId = 1, LocationId = 1, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 2, SurveyId = 1, EmployeeId = 2, LocationId = 2, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 3, SurveyId = 3, EmployeeId = 4, LocationId = 1, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 4, SurveyId = 4, EmployeeId = 1, LocationId = 2, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "false", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 6, SurveyId = 1, EmployeeId = 4, LocationId = 2, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 7, SurveyId = 1, EmployeeId = 4, LocationId = 3, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "false", CreatedDate = DateTime.Now });
|
||||
surveyResponseDbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@ -136,7 +136,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, string locationId)
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, int locationId)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -286,19 +286,14 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
{
|
||||
if (SurveyResponse != null)
|
||||
{
|
||||
var _SurveyResponse = await surveyResponseDbContext.SurveyResponses.Where(s => s.Id == Id).FirstOrDefaultAsync();
|
||||
var _SurveyResponse = await surveyResponseDbContext.SurveyResponses.AsNoTracking().Where(s => s.Id == Id).FirstOrDefaultAsync();
|
||||
|
||||
if (_SurveyResponse != null)
|
||||
{
|
||||
_SurveyResponse.SurveyId = SurveyResponse.SurveyId;
|
||||
_SurveyResponse.EmployeeId = SurveyResponse.EmployeeId;
|
||||
_SurveyResponse.LocationId = SurveyResponse.LocationId;
|
||||
_SurveyResponse.ClientDevice = SurveyResponse.ClientDevice;
|
||||
_SurveyResponse.KeyAnswerResult = SurveyResponse.KeyAnswerResult;
|
||||
_SurveyResponse.Longitute = SurveyResponse.Longitute;
|
||||
_SurveyResponse.Latitude = SurveyResponse.Latitude;
|
||||
var response = mapper.Map<Models.SurveyResponse, Db.SurveyResponse>(SurveyResponse);
|
||||
surveyResponseDbContext.Update(response);
|
||||
await surveyResponseDbContext.SaveChangesAsync();
|
||||
return (true, mapper.Map<Db.SurveyResponse, Models.SurveyResponse>(_SurveyResponse), "Successful");
|
||||
return (true, SurveyResponse, "Successful");
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -360,13 +355,13 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
answer => answer.SurveyResponseId,
|
||||
surveyResponse => surveyResponse.Id,
|
||||
(answer, surveyResponse) => new
|
||||
Answer
|
||||
|
||||
{
|
||||
Id = answer.Id,
|
||||
QuestionId = answer.QuestionId,
|
||||
AnswerText = answer.AnswerText,
|
||||
Comment = answer.Comment,
|
||||
LocationId = surveyResponse.LocationId,
|
||||
answer.Id,
|
||||
answer.QuestionId,
|
||||
answer.AnswerText,
|
||||
answer.Comment,
|
||||
surveyResponse.LocationId,
|
||||
SurveyResponseId = surveyResponse.Id
|
||||
});
|
||||
|
||||
@ -383,41 +378,46 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
//get all the answers based on the locations
|
||||
var result = from answer in surveyAnswers
|
||||
from location in locations
|
||||
where answer.LocationId == location.Id
|
||||
select new Answer
|
||||
where answer.LocationId.Equals(location.Id)
|
||||
select new
|
||||
{
|
||||
Id = answer.Id,
|
||||
QuestionId = answer.QuestionId,
|
||||
AnswerText = answer.AnswerText,
|
||||
Comment = answer.Comment,
|
||||
RegionId = location.RegionId,
|
||||
answer.Id,
|
||||
answer.QuestionId,
|
||||
answer.AnswerText,
|
||||
answer.Comment,
|
||||
location.RegionId,
|
||||
LocationId = location.Id,
|
||||
SurveyResponseId = answer.SurveyResponseId
|
||||
answer.SurveyResponseId
|
||||
};
|
||||
|
||||
|
||||
|
||||
//group records by answer and region
|
||||
var q = from e in result
|
||||
group e by (e.RegionId, e.AnswerText) into g
|
||||
select new AggregateResult
|
||||
select new
|
||||
{
|
||||
RegionId = g.Key.RegionId,
|
||||
Answers = new AggregateAnswer
|
||||
g.Key.RegionId,
|
||||
Answers = new
|
||||
{
|
||||
Answer = g.Key.AnswerText,
|
||||
g.Key.AnswerText,
|
||||
Counter = g.Count()
|
||||
}
|
||||
};
|
||||
|
||||
//build the result
|
||||
List<AnswerData> resultList = new List<AnswerData>();
|
||||
|
||||
List<dynamic> resultList = new List<dynamic>();
|
||||
foreach (Region region in regions)
|
||||
{
|
||||
var answers = q.Where(x => x.RegionId.Equals(region.Id)).Select(x => x.Answers).ToList();
|
||||
resultList.Add(new AnswerData { RegionId = region.Id, Name = region.Name, Abbreviation = region.Abbreviation, Answers = answers });
|
||||
}
|
||||
var answers = from u in q.ToList()
|
||||
where u.RegionId.Equals(region.Id)
|
||||
select u.Answers;
|
||||
|
||||
resultList.Add(new { RegionId = region.Id, region.Name, region.Abbreviation, Answers = answers});
|
||||
}
|
||||
//return the object result
|
||||
return new ResultData { Regions = resultList };
|
||||
return new { Regions = resultList };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -455,7 +455,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
ans.Id,
|
||||
ans.AnswerText,
|
||||
ans.Comment,
|
||||
Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
|
||||
Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
|
||||
}
|
||||
};
|
||||
@ -504,7 +504,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
ans.QuestionId,
|
||||
ans.AnswerText,
|
||||
ans.Comment,
|
||||
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
|
||||
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
|
||||
|
||||
}
|
||||
@ -531,8 +531,6 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
var questions = await questionServiceProvider.getQuestionsAsync();
|
||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync();
|
||||
|
||||
|
||||
|
||||
var result = from r in surveyResonses
|
||||
select new
|
||||
{
|
||||
@ -553,7 +551,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
ans.QuestionId,
|
||||
ans.AnswerText,
|
||||
ans.Comment,
|
||||
Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
|
||||
Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
|
||||
}
|
||||
};
|
||||
@ -594,7 +592,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
//get all the answers with location
|
||||
var surveyAnswersLocations = from surveyAns in surveyAnswers
|
||||
from location in locations
|
||||
where surveyAns.LocationId == location.Id
|
||||
where surveyAns.LocationId.Equals(location.Id)
|
||||
select new { surveyAns, location.MaintenanceCenter };
|
||||
|
||||
//aggreting the answers
|
||||
@ -603,9 +601,9 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
select new
|
||||
{
|
||||
g.Key.MaintenanceCenter,
|
||||
Answers = new AggregateAnswer
|
||||
Answers = new
|
||||
{
|
||||
Answer = g.Key.AnswerText,
|
||||
g.Key.AnswerText,
|
||||
Counter = g.Count()
|
||||
}
|
||||
};
|
||||
@ -628,7 +626,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
|
||||
//Method to get Survey Responses by surveyId and LocationId
|
||||
private async Task<dynamic> getSurveyResponsesBySurveyIdLocationIdAsync(int surveyId, string locationId)
|
||||
private async Task<dynamic> getSurveyResponsesBySurveyIdLocationIdAsync(int surveyId, int locationId)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -661,7 +659,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
ans.Id,
|
||||
ans.AnswerText,
|
||||
ans.Comment,
|
||||
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
|
||||
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
|
||||
}
|
||||
};
|
||||
@ -759,8 +757,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
{
|
||||
if (request != null)
|
||||
{
|
||||
var response = await PostSurveyResponseAsync(new Models.SurveyResponse { SurveyId = request.SurveyId, EmployeeId = request.EmployeeId, LocationId = request.LocationId });
|
||||
|
||||
var response = await PostSurveyResponseAsync(new Models.SurveyResponse { SurveyId = request.SurveyId, EmployeeId = request.EmployeeId, LocationId = request.LocationId, ClientDevice = request.ClientDevice, KeyAnswerResult = request.KeyAnswerResult, Latitude = Convert.ToDouble(request.Latitude), Longitute = Convert.ToDouble(request.Longitute), CreatedDate=DateTime.Now });
|
||||
if (response.IsSuccess)
|
||||
{
|
||||
var surveyResponse = response.SurveyResponse;
|
||||
|
@ -7,14 +7,13 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
public class AnswerServiceProvider : ServiceProviderBase, IAnswerServiceProvider
|
||||
{
|
||||
public AnswerServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<AnswerServiceProvider> logger) : base(configuration, httpUtil, logger, "/api/Answers", configuration.GetValue<string>("EndPointSettings:AnswerUrlBase"))
|
||||
public AnswerServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<AnswerServiceProvider> logger) : base(configuration, httpUtil, logger, configuration.GetValue<string>("RessourceSettings:Answer"), configuration.GetValue<string>("EndPointSettings:AnswerUrlBase"))
|
||||
{
|
||||
}
|
||||
public async Task<List<Answer>> getAnswersAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var answers = JsonConvert.DeserializeObject<List<Answer>>(responseJsonString);
|
||||
|
||||
@ -33,7 +32,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + "/api/AnswersByResponse/" + responseId;
|
||||
url = urlBase + string.Format(configuration.GetValue<string>("RessourceSettings:AnswerByResponse"), responseId);
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var answers = JsonConvert.DeserializeObject<List<Answer>>(responseJsonString);
|
||||
|
||||
@ -52,7 +51,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var requestJsonString = JsonConvert.SerializeObject(answer);
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Post, url, requestJsonString);
|
||||
var answers = JsonConvert.DeserializeObject<Answer>(responseJsonString);
|
||||
|
@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
public class AttachmentServiceProvider : ServiceProviderBase, IAttachmentServiceProvider
|
||||
{
|
||||
public AttachmentServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<AttachmentServiceProvider> logger) : base(configuration, httpUtil, logger, "/api/Attachments", configuration.GetValue<string>("EndPointSettings:AttachmentUrlBase"))
|
||||
public AttachmentServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<AttachmentServiceProvider> logger) : base(configuration, httpUtil, logger, configuration.GetValue<string>("RessourceSettings:Attachment"), configuration.GetValue<string>("EndPointSettings:AttachmentUrlBase"))
|
||||
{
|
||||
}
|
||||
|
||||
@ -14,7 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var attachments = JsonConvert.DeserializeObject<List<Attachment>>(responseJsonString);
|
||||
|
||||
@ -33,7 +32,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var requestJsonString = JsonConvert.SerializeObject(attachmentInfo);
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Post, url, requestJsonString);
|
||||
var attachments = JsonConvert.DeserializeObject<IEnumerable<Attachment>>(responseJsonString);
|
||||
|
@ -1,12 +1,13 @@
|
||||
using DamageAssesment.Api.SurveyResponses.Interfaces;
|
||||
using DamageAssesment.Api.SurveyResponses.Models;
|
||||
using Microsoft.AspNetCore.Mvc.Routing;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
public class EmployeeServiceProvider : ServiceProviderBase, IEmployeeServiceProvider
|
||||
{
|
||||
public EmployeeServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<EmployeeServiceProvider> logger) : base(configuration, httpUtil, logger, "/api/Employees", configuration.GetValue<string>("EndPointSettings:EmployeeUrlBase"))
|
||||
public EmployeeServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<EmployeeServiceProvider> logger) : base(configuration, httpUtil, logger, configuration.GetValue<string>("RessourceSettings:Employee"), configuration.GetValue<string>("EndPointSettings:EmployeeUrlBase"))
|
||||
{
|
||||
}
|
||||
|
||||
@ -14,7 +15,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var employees = JsonConvert.DeserializeObject<List<Employee>>(responseJsonString);
|
||||
|
||||
@ -29,11 +29,11 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Employee> getEmployeeAsync(string employeeId)
|
||||
public async Task<Employee> getEmployeeAsync(int employeeId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + "/api/Employees/" + employeeId;
|
||||
url = urlBase + string.Format(configuration.GetValue<string>("RessourceSettings:EmployeeById"), employeeId);
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var employee = JsonConvert.DeserializeObject<Employee>(responseJsonString);
|
||||
|
||||
|
@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
public class LocationServiceProvider :ServiceProviderBase, ILocationServiceProvider
|
||||
{
|
||||
public LocationServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<LocationServiceProvider> logger) : base(configuration, httpUtil, logger, "/api/Locations", configuration.GetValue<string>("EndPointSettings:LocationUrlBase"))
|
||||
public LocationServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<LocationServiceProvider> logger) : base(configuration, httpUtil, logger, configuration.GetValue<string>("RessourceSettings:Location"), configuration.GetValue<string>("EndPointSettings:LocationUrlBase"))
|
||||
{
|
||||
}
|
||||
|
||||
@ -14,7 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var locations = JsonConvert.DeserializeObject<List<Location>>(responseJsonString);
|
||||
|
||||
|
@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
public class QuestionServiceProvider : ServiceProviderBase, IQuestionServiceProvider
|
||||
{
|
||||
public QuestionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<QuestionServiceProvider> logger) : base(configuration, httpUtil, logger, "/api/Questions", configuration.GetValue<string>("EndPointSettings:QuestionUrlBase"))
|
||||
public QuestionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<QuestionServiceProvider> logger) : base(configuration, httpUtil, logger, configuration.GetValue<string>("RessourceSettings:Question"), configuration.GetValue<string>("EndPointSettings:QuestionUrlBase"))
|
||||
{
|
||||
}
|
||||
|
||||
@ -14,7 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var questions = JsonConvert.DeserializeObject<List<Question>>(responseJsonString);
|
||||
|
||||
@ -33,7 +32,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + "/api/GetSurveyQuestions/" + surveyId;
|
||||
url = urlBase + string.Format(configuration.GetValue<string>("RessourceSettings:SurveyQuestion"), surveyId);
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var questions = JsonConvert.DeserializeObject<List<SurveyQuestions>>(responseJsonString);
|
||||
|
||||
@ -53,7 +52,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + "/api/Questions/" + questionId;
|
||||
url = urlBase + string.Format(configuration.GetValue<string>("RessourceSettings:QuestionById"), questionId);
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var question = JsonConvert.DeserializeObject<Question>(responseJsonString);
|
||||
|
||||
|
@ -6,14 +6,13 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
public class RegionServiceProvider : ServiceProviderBase, IRegionServiceProvider
|
||||
{
|
||||
public RegionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<RegionServiceProvider> logger) : base(configuration, httpUtil, logger, "/api/Regions", configuration.GetValue<string>("EndPointSettings:LocationUrlBase"))
|
||||
public RegionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<RegionServiceProvider> logger) : base(configuration, httpUtil, logger, configuration.GetValue<string>("RessourceSettings:Region"), configuration.GetValue<string>("EndPointSettings:LocationUrlBase"))
|
||||
{
|
||||
}
|
||||
public async Task<List<Region>> getRegionsAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource;
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var regions = JsonConvert.DeserializeObject<List<Region>>(responseJsonString);
|
||||
|
||||
|
@ -9,6 +9,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
protected readonly ILogger<ServiceProviderBase> logger;
|
||||
protected string ressource;
|
||||
protected string urlBase;
|
||||
protected string url;
|
||||
|
||||
|
||||
public ServiceProviderBase(IConfiguration configuration, IHttpUtil httpUtil, ILogger<ServiceProviderBase> logger, string ressource, string urlBase)
|
||||
@ -18,6 +19,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
this.logger = logger;
|
||||
this.ressource = ressource;
|
||||
this.urlBase = urlBase;
|
||||
url = urlBase + ressource;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
public class SurveyServiceProvider :ServiceProviderBase, ISurveyServiceProvider
|
||||
{
|
||||
public SurveyServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<EmployeeServiceProvider> logger) : base(configuration, httpUtil, logger, "/api/Surveys", configuration.GetValue<string>("EndPointSettings:SurveyUrlBase"))
|
||||
public SurveyServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger<EmployeeServiceProvider> logger) : base(configuration, httpUtil, logger, configuration.GetValue<string>("RessourceSettings:Survey"), configuration.GetValue<string>("EndPointSettings:SurveyUrlBase"))
|
||||
{
|
||||
}
|
||||
|
||||
@ -14,8 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
var url = urlBase + ressource;
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var surveys = JsonConvert.DeserializeObject<List<Survey>>(responseJsonString);
|
||||
|
||||
@ -34,7 +32,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = urlBase + ressource + "/" + surveyId;
|
||||
url = urlBase + string.Format(configuration.GetValue<string>("RessourceSettings:SurveyById"), surveyId);
|
||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
|
||||
var survey = JsonConvert.DeserializeObject<Survey>(responseJsonString);
|
||||
|
||||
|
@ -3,6 +3,30 @@
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
},
|
||||
"EndPointSettings": {
|
||||
"AnswerUrlBase": "http://localhost:5200",
|
||||
"LocationUrlBase": "http://localhost:5213",
|
||||
"RegionUrlBase": "http://localhost:5211",
|
||||
"QuestionUrlBase": "http://localhost:5133",
|
||||
"EmployeeUrlBase": "http://localhost:5135",
|
||||
"AttachmentUrlBase": "http://localhost:5243",
|
||||
"SurveyUrlBase": "http://localhost:5009"
|
||||
},
|
||||
|
||||
"RessourceSettings": {
|
||||
"Employee": "/Employees",
|
||||
"EmployeeById": "/Employees/{0}",
|
||||
"Question": "/Questions",
|
||||
"QuestionById": "/Questions/{0}",
|
||||
"SurveyQuestion": "/Questions/BySurvey/{0}",
|
||||
"Survey": "/Surveys",
|
||||
"SurveyById": "/Surveys/{0}",
|
||||
"Attachment": "/Attachments",
|
||||
"Answer": "/Answers",
|
||||
"AnswerByResponse": "/Answers/ByResponse/{0}",
|
||||
"Location": "/Locations",
|
||||
"Region": "/Regions"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;MultipleActiveResultSets=true"
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;MultipleActiveResultSets=true"
|
||||
}
|
||||
}
|
@ -14,6 +14,20 @@
|
||||
"EmployeeUrlBase": "http://localhost:5135",
|
||||
"AttachmentUrlBase": "http://localhost:5243",
|
||||
"SurveyUrlBase": "http://localhost:5009"
|
||||
},
|
||||
|
||||
"RessourceSettings": {
|
||||
"Employee": "/Employees",
|
||||
"EmployeeById": "/Employees/{0}",
|
||||
"Question": "/Questions",
|
||||
"QuestionById": "/Questions/{0}",
|
||||
"SurveyQuestion": "/Questions/BySurvey/{0}",
|
||||
"Survey": "/Surveys",
|
||||
"SurveyById": "/Surveys/{0}",
|
||||
"Attachment": "/Attachments",
|
||||
"Answer": "/Answers",
|
||||
"AnswerByResponse": "/Answers/ByResponse/{0}",
|
||||
"Location": "/Locations",
|
||||
"Region": "/Regions"
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,6 @@ namespace DamageAssesment.Api.Surveys.Models
|
||||
public class Survey : BaseSurvey
|
||||
{
|
||||
public IEnumerable<SurveyTranslation> Titles { get; set; }
|
||||
|
||||
}
|
||||
public class BaseSurvey
|
||||
{
|
||||
|
@ -184,17 +184,15 @@ namespace DamageAssesment.Api.Surveys.Providers
|
||||
{
|
||||
if (survey != null)
|
||||
{
|
||||
var _survey = await surveyDbContext.Surveys.Where(s => s.Id == Id).SingleOrDefaultAsync();
|
||||
var _survey = await surveyDbContext.Surveys.AsNoTracking().Where(s => s.Id == Id).SingleOrDefaultAsync();
|
||||
|
||||
if (_survey != null)
|
||||
{
|
||||
var surveysTranslation = await surveyDbContext.SurveysTranslation.Where(s => s.SurveyId == Id).ToListAsync();
|
||||
surveyDbContext.SurveysTranslation.RemoveRange(surveysTranslation);
|
||||
await surveyDbContext.SaveChangesAsync();
|
||||
|
||||
_survey.IsEnabled = survey.IsEnabled;
|
||||
_survey.StartDate = survey.StartDate;
|
||||
_survey.EndDate = survey.EndDate;
|
||||
_survey = mapper.Map<Models.Survey, Db.Survey>(survey);
|
||||
surveyDbContext.Surveys.Update(_survey);
|
||||
await surveyDbContext.SaveChangesAsync();
|
||||
|
||||
List<Db.SurveyTranslation> listSurveyTranslation = new List<Db.SurveyTranslation>();
|
||||
|
@ -24,7 +24,7 @@ namespace DamageAssesment.Api.SurveyResponses.Test
|
||||
|
||||
public static async Task<Models.SurveyResponse> getSurveyResponseObject()
|
||||
{
|
||||
return new Models.SurveyResponse { EmployeeId = "Emp1", LocationId = "Loc1", SurveyId = 1, Id = 1 };
|
||||
return new Models.SurveyResponse { EmployeeId = 1, LocationId = 1, SurveyId = 1, Id = 1 };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -68,9 +68,9 @@ namespace DamageAssesment.SurveyResponses.Test
|
||||
{
|
||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||
var mockResponse = await MockData.getOkResponse();
|
||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, "Loc1")).ReturnsAsync(mockResponse);
|
||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||
var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
|
||||
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, "Loc1");
|
||||
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1);
|
||||
Assert.Equal(200, result.StatusCode);
|
||||
}
|
||||
|
||||
@ -78,9 +78,9 @@ namespace DamageAssesment.SurveyResponses.Test
|
||||
public async Task GetSurveyResponsesBySurveyLocationAsync_ShouldReturnStatusCode204()
|
||||
{
|
||||
var mockResponse = await MockData.getResponse();
|
||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, "Loc1")).ReturnsAsync(mockResponse);
|
||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||
var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
|
||||
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, "Lo1");
|
||||
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1);
|
||||
Assert.Equal(204, result.StatusCode);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user