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