diff --git a/DamageAssesmentApi/DamageAssesment.Api.Answers/Controllers/AnswersController.cs b/DamageAssesmentApi/DamageAssesment.Api.Answers/Controllers/AnswersController.cs
index bbfc323..a86cbf1 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Answers/Controllers/AnswersController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Answers/Controllers/AnswersController.cs
@@ -5,7 +5,6 @@ using Microsoft.OpenApi.Any;
namespace DamageAssesment.Api.Answers.Controllers
{
- [Route("api")]
[ApiController]
public class AnswersController: ControllerBase
{
@@ -49,10 +48,10 @@ namespace DamageAssesment.Api.Answers.Controllers
///
/// Get all answers based on responseId.
///
- [HttpGet("AnswersByResponse/{ResponseId}")]
- public async Task GetAnswersByResponseId(int ResponseId)
+ [HttpGet("Answers/ByResponse/{responseid}")]
+ public async Task GetAnswersByResponseId(int responseid)
{
- var result = await this.answerProvider.GetAnswersAsync(ResponseId);
+ var result = await this.answerProvider.GetAnswersAsync(responseid);
if(result.IsSuccess)
{
return Ok(result.Answers);
@@ -63,10 +62,10 @@ namespace DamageAssesment.Api.Answers.Controllers
/// Get all answers based on questionId.
///
- [HttpGet("AnswersByQuestion/{QuestionId}")]
- public async Task AnswersByQuestionId(int QuestionId)
+ [HttpGet("Answers/ByQuestion/{questionid}")]
+ public async Task AnswersByQuestionId(int questionid)
{
- var result = await this.answerProvider.GetAnswersByQuestionAsync(QuestionId);
+ var result = await this.answerProvider.GetAnswersByQuestionAsync(questionid);
if (result.IsSuccess)
{
return Ok(result.Answers);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Attachments/Controllers/AttachmentsController.cs b/DamageAssesmentApi/DamageAssesment.Api.Attachments/Controllers/AttachmentsController.cs
index 8050515..0fcec65 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Attachments/Controllers/AttachmentsController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Attachments/Controllers/AttachmentsController.cs
@@ -7,7 +7,6 @@ using System.Net.Http.Headers;
namespace DamageAssesment.Api.Attachments.Controllers
{
- [Route("api")]
[ApiController]
public class AttachmentsController : ControllerBase
{
@@ -139,11 +138,11 @@ namespace DamageAssesment.Api.Attachments.Controllers
///
/// Delete an existing attachment.
///
- [HttpDelete("Delete")]
- public async Task DeleteAttachment(int Id)
+ [HttpDelete("Attachments/{id}")]
+ public async Task DeleteAttachment(int id)
{
// database soft delete
- var result = await this.AttachmentProvider.DeleteAttachmentAsync(Id);
+ var result = await this.AttachmentProvider.DeleteAttachmentAsync(id);
if (result.IsSuccess)
{
// deleting file from folder
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/EmployeeServiceTest.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/EmployeeServiceTest.cs
index aa30faf..4fcecad 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/EmployeeServiceTest.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/EmployeeServiceTest.cs
@@ -43,11 +43,11 @@ namespace DamageAssesment.Api.Employees.Test
public async Task GetEmployeeAsync_ShouldReturnStatusCode200()
{
var mockEmployeeService = new Mock();
- var mockResponse = await MockData.getOkResponse("Emp1");
- mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync("Emp1")).ReturnsAsync(mockResponse);
+ var mockResponse = await MockData.getOkResponse(1);
+ mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync(1)).ReturnsAsync(mockResponse);
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
- var result = (OkObjectResult)await EmployeeProvider.GetEmployeeByIdAsync("Emp1");
+ var result = (OkObjectResult)await EmployeeProvider.GetEmployeeByIdAsync(1);
Assert.Equal(200, result.StatusCode);
}
@@ -57,10 +57,10 @@ namespace DamageAssesment.Api.Employees.Test
{
var mockEmployeeService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
- mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync("Emp99")).ReturnsAsync(mockResponse);
+ mockEmployeeService.Setup(service => service.GetEmployeeByIdAsync(99999)).ReturnsAsync(mockResponse);
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
- var result = (NotFoundResult)await EmployeeProvider.GetEmployeeByIdAsync("Emp99");
+ var result = (NotFoundResult)await EmployeeProvider.GetEmployeeByIdAsync(99999);
Assert.Equal(404, result.StatusCode);
}
@@ -68,7 +68,7 @@ namespace DamageAssesment.Api.Employees.Test
public async Task PostEmployeeAsync_ShouldReturnStatusCode200()
{
var mockEmployeeService = new Mock();
- var mockResponse = await MockData.getOkResponse("Emp1");
+ var mockResponse = await MockData.getOkResponse(1);
var mockInputEmployee = await MockData.getInputEmployeeData();
mockEmployeeService.Setup(service => service.PostEmployeeAsync(mockInputEmployee)).ReturnsAsync(mockResponse);
@@ -96,12 +96,12 @@ namespace DamageAssesment.Api.Employees.Test
public async Task PutEmployeeAsync_ShouldReturnStatusCode200()
{
var mockEmployeeService = new Mock();
- var mockResponse = await MockData.getOkResponse("Emp1");
+ var mockResponse = await MockData.getOkResponse(1);
var mockInputEmployee = await MockData.getInputEmployeeData();
- mockEmployeeService.Setup(service => service.UpdateEmployeeAsync("Emp1",mockInputEmployee)).ReturnsAsync(mockResponse);
+ mockEmployeeService.Setup(service => service.UpdateEmployeeAsync(1,mockInputEmployee)).ReturnsAsync(mockResponse);
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
- var result = (OkObjectResult)await EmployeeProvider.UpdateEmployee("Emp1",mockInputEmployee);
+ var result = (OkObjectResult)await EmployeeProvider.UpdateEmployee(1,mockInputEmployee);
Assert.Equal(200, result.StatusCode);
}
@@ -112,10 +112,10 @@ namespace DamageAssesment.Api.Employees.Test
var mockEmployeeService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
var mockInputEmployee = await MockData.getInputEmployeeData();
- mockEmployeeService.Setup(service => service.UpdateEmployeeAsync("Emp1", mockInputEmployee)).ReturnsAsync(mockResponse);
+ mockEmployeeService.Setup(service => service.UpdateEmployeeAsync(1, mockInputEmployee)).ReturnsAsync(mockResponse);
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
- var result = (NotFoundObjectResult)await EmployeeProvider.UpdateEmployee("Emp1", mockInputEmployee);
+ var result = (NotFoundObjectResult)await EmployeeProvider.UpdateEmployee(1, mockInputEmployee);
Assert.Equal(404, result.StatusCode);
}
@@ -126,10 +126,10 @@ namespace DamageAssesment.Api.Employees.Test
var mockEmployeeService = new Mock();
var mockResponse = await MockData.getBadRequestResponse();
var mockInputEmployee = await MockData.getInputEmployeeData();
- mockEmployeeService.Setup(service => service.UpdateEmployeeAsync("Emp1", mockInputEmployee)).ReturnsAsync(mockResponse);
+ mockEmployeeService.Setup(service => service.UpdateEmployeeAsync(1, mockInputEmployee)).ReturnsAsync(mockResponse);
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
- var result = (BadRequestObjectResult)await EmployeeProvider.UpdateEmployee("Emp1", mockInputEmployee);
+ var result = (BadRequestObjectResult)await EmployeeProvider.UpdateEmployee(1, mockInputEmployee);
Assert.Equal(400, result.StatusCode);
}
@@ -138,12 +138,12 @@ namespace DamageAssesment.Api.Employees.Test
public async Task DeleteEmployeeAsync_ShouldReturnStatusCode200()
{
var mockEmployeeService = new Mock();
- var mockResponse = await MockData.getOkResponse("Emp1");
+ var mockResponse = await MockData.getOkResponse(1);
- mockEmployeeService.Setup(service => service.DeleteEmployeeAsync("Emp1")).ReturnsAsync(mockResponse);
+ mockEmployeeService.Setup(service => service.DeleteEmployeeAsync(1)).ReturnsAsync(mockResponse);
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
- var result = (OkObjectResult)await EmployeeProvider.DeleteEmployee("Emp1");
+ var result = (OkObjectResult)await EmployeeProvider.DeleteEmployee(1);
Assert.Equal(200, result.StatusCode);
}
@@ -153,10 +153,10 @@ namespace DamageAssesment.Api.Employees.Test
{
var mockEmployeeService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
- mockEmployeeService.Setup(service => service.DeleteEmployeeAsync("Emp1")).ReturnsAsync(mockResponse);
+ mockEmployeeService.Setup(service => service.DeleteEmployeeAsync(1)).ReturnsAsync(mockResponse);
var EmployeeProvider = new EmployeesController(mockEmployeeService.Object);
- var result = (NotFoundResult)await EmployeeProvider.DeleteEmployee("Emp1");
+ var result = (NotFoundResult)await EmployeeProvider.DeleteEmployee(1);
Assert.Equal(404, result.StatusCode);
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/MockData.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/MockData.cs
index 91c8b84..19768fc 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/MockData.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees.Test/MockData.cs
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using System.Text;
namespace DamageAssesment.Api.Employees.Test
{
@@ -15,13 +11,13 @@ namespace DamageAssesment.Api.Employees.Test
for (int i = 0; i < 10; i++)
{
- list.Append(new Employees.Models.Employee { Id = "Emp"+i, Name = "Emoployee"+i, Email = "abc"+i+"@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18-i), IsActive = true, PreferredLanguage = "en" });
+ list.Append(new Employees.Models.Employee { Id = i, Name = "Emoployee"+i, Email = "abc"+i+"@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18-i), IsActive = true, PreferredLanguage = "en" });
}
return (true, list, null);
}
- public static async Task<(bool, Employees.Models.Employee, string)> getOkResponse(string Id)
+ public static async Task<(bool, Employees.Models.Employee, string)> getOkResponse(int Id)
{
var Employees = await getOkResponse();
var Employee = Employees.Item2.FirstOrDefault(s => s.Id == Id);
@@ -45,7 +41,7 @@ namespace DamageAssesment.Api.Employees.Test
public static async Task 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" };
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees/Controllers/EmployeesController.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees/Controllers/EmployeesController.cs
index 8d004e6..f5e0d88 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees/Controllers/EmployeesController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees/Controllers/EmployeesController.cs
@@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Mvc;
namespace DamageAssesment.Api.Employees.Controllers
{
- [Route("api")]
[ApiController]
public class EmployeesController : ControllerBase
{
@@ -37,11 +36,11 @@ namespace DamageAssesment.Api.Employees.Controllers
/// GET request for retrieving an employee by ID.
///
- [HttpGet("Employees/{Id}")]
- public async Task GetEmployeeByIdAsync(string Id)
+ [HttpGet("Employees/{id}")]
+ public async Task GetEmployeeByIdAsync(int id)
{
- var result = await EmployeeProvider.GetEmployeeByIdAsync(Id);
+ var result = await EmployeeProvider.GetEmployeeByIdAsync(id);
if (result.IsSuccess)
{
return Ok(result.Employee);
@@ -54,12 +53,12 @@ namespace DamageAssesment.Api.Employees.Controllers
/// PUT request for updating an existing employee.
///
/// The updated employee object.
- [HttpPut("Employees")]
- public async Task UpdateEmployee(string Id, Models.Employee Employee)
+ [HttpPut("Employees/{id}")]
+ public async Task UpdateEmployee(int id, Models.Employee Employee)
{
if (Employee != null)
{
- var result = await this.EmployeeProvider.UpdateEmployeeAsync(Id,Employee);
+ var result = await this.EmployeeProvider.UpdateEmployeeAsync(id,Employee);
if (result.IsSuccess)
{
return Ok(result.Employee);
@@ -88,14 +87,14 @@ namespace DamageAssesment.Api.Employees.Controllers
}
return BadRequest(result.ErrorMessage);
}
- return CreatedAtRoute("DefaultApi", new { id = Employee.Id }, Employee);
+ return CreatedAtRoute("DefaultApi", new { Id = Employee.Id }, Employee);
}
///
/// DELETE request for deleting an existing employee.
///
/// The ID of the employee to be deleted.
[HttpDelete("Employees/{id}")]
- public async Task DeleteEmployee(string id)
+ public async Task DeleteEmployee(int id)
{
var result = await this.EmployeeProvider.DeleteEmployeeAsync(id);
if (result.IsSuccess)
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/Employee.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/Employee.cs
index 2b3202a..45ab57e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/Employee.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/Employee.cs
@@ -5,7 +5,9 @@ namespace DamageAssesment.Api.Employees.Db
public class Employee
{
[Key]
- public string Id { get; set; }
+ public int Id { get; set; }
+ [StringLength(50)]
+ public string EmployeeCode { get; set; }
[StringLength(50)]
public string Name { get; set; }
@@ -17,7 +19,7 @@ namespace DamageAssesment.Api.Employees.Db
[StringLength(50)]
public string Email { get; set; }
- public bool IsActive {get;set;}
+ public bool IsActive { get; set; }
public string? PreferredLanguage { get; set; } = "en";
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/EmployeeDbContext.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/EmployeeDbContext.cs
index 0d7bc5e..ec7b0f0 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/EmployeeDbContext.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees/Db/EmployeeDbContext.cs
@@ -8,5 +8,14 @@ namespace DamageAssesment.Api.Employees.Db
public EmployeeDbContext(DbContextOptions options) : base(options)
{
}
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ base.OnModelCreating(modelBuilder);
+
+ modelBuilder.Entity()
+ .Property(item => item.Id)
+ .ValueGeneratedOnAdd();
+ }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees/Interfaces/IEmployeesProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees/Interfaces/IEmployeesProvider.cs
index 8083d2c..91da039 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees/Interfaces/IEmployeesProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees/Interfaces/IEmployeesProvider.cs
@@ -3,10 +3,10 @@
public interface IEmployeesProvider
{
Task<(bool IsSuccess, IEnumerable Employees, string ErrorMessage)> GetEmployeesAsync();
- Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(string Id);
+ Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(int Id);
Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> PostEmployeeAsync(Models.Employee Employee);
- Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(string Id, Models.Employee Employee);
- Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(string Id);
+ Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(int Id, Models.Employee Employee);
+ Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(int Id);
void SeedData();
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees/Models/Employee.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees/Models/Employee.cs
index 5defc90..0d5638c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees/Models/Employee.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees/Models/Employee.cs
@@ -4,7 +4,8 @@ namespace DamageAssesment.Api.Employees.Models
{
public class Employee
{
- public string Id { get; set; }
+ public int Id { get; set; }
+ public string EmployeeCode { get; set; }
public string Name { get; set; }
public DateTime BirthDate { get; set; }
public string OfficePhoneNumber { get; set; }
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees/Profiles/EmployeesProfile.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees/Profiles/EmployeesProfile.cs
index 444752b..e46d15f 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees/Profiles/EmployeesProfile.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees/Profiles/EmployeesProfile.cs
@@ -7,6 +7,7 @@ namespace DamageAssesment.Api.Employees.Profiles
public EmployeesProfile()
{
CreateMap();
+ CreateMap();
}
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Employees/Providers/EmployeesProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Employees/Providers/EmployeesProvider.cs
index 533763f..75cefed 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Employees/Providers/EmployeesProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Employees/Providers/EmployeesProvider.cs
@@ -19,7 +19,7 @@ namespace DamageAssesment.Api.Employees.Providers
this.EmployeeDbContext = EmployeeDbContext;
this.logger = logger;
this.mapper = mapper;
- // SeedData();
+ // SeedData();
}
public async Task<(bool IsSuccess, IEnumerable Employees, string ErrorMessage)> GetEmployeesAsync()
@@ -45,12 +45,12 @@ namespace DamageAssesment.Api.Employees.Providers
}
- public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(string Id)
+ public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> GetEmployeeByIdAsync(int Id)
{
try
{
logger?.LogInformation("Query Employee");
- var Employee = await EmployeeDbContext.Employees.AsNoTracking().FirstOrDefaultAsync(q => q.Id.ToLower() == Id.ToLower());
+ var Employee = await EmployeeDbContext.Employees.AsNoTracking().FirstOrDefaultAsync(q => q.Id == Id);
if (Employee != null)
{
logger?.LogInformation($"{Employee} customer(s) found");
@@ -72,13 +72,14 @@ namespace DamageAssesment.Api.Employees.Providers
Db.Employee _employee = mapper.Map(Employee);
logger?.LogInformation("Query Employee");
- if (!EmployeeExists(Employee.Id))
+ if (!EmployeeCodeExists(Employee.EmployeeCode))
{
EmployeeDbContext.Employees.Add(_employee);
+ Employee.Id = _employee.Id;
EmployeeDbContext.SaveChanges();
return (true, Employee, null);
}
- return (false, null, "Employee is already exits");
+ return (false, null, "Employee code is already exits");
}
catch (Exception ex)
{
@@ -86,19 +87,20 @@ namespace DamageAssesment.Api.Employees.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(string Id , Models.Employee Employee)
+ public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> UpdateEmployeeAsync(int Id, Models.Employee Employee)
{
try
{
if (Employee != null)
{
- var _employee = await EmployeeDbContext.Employees.AsNoTracking().Where(s => s.Id.ToLower() == Id.ToLower()).FirstOrDefaultAsync();
+ var _employee = await EmployeeDbContext.Employees.AsNoTracking().Where(s => s.Id == Id).FirstOrDefaultAsync();
if (_employee != null)
{
Db.Employee vEmployee = mapper.Map(Employee);
EmployeeDbContext.Employees.Update(vEmployee);
EmployeeDbContext.SaveChanges();
+ Employee.Id = Id;
return (true, Employee, "Successful");
}
else
@@ -120,11 +122,11 @@ namespace DamageAssesment.Api.Employees.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(string Id)
+ public async Task<(bool IsSuccess, Models.Employee Employee, string ErrorMessage)> DeleteEmployeeAsync(int Id)
{
try
{
- Db.Employee Employee = EmployeeDbContext.Employees.AsNoTracking().Where(a => a.Id.ToLower() == Id.ToLower()).FirstOrDefault();
+ Db.Employee Employee = EmployeeDbContext.Employees.AsNoTracking().Where(a => a.Id == Id).FirstOrDefault();
if (Employee == null)
{
return (false, null, "Not Found");
@@ -137,24 +139,29 @@ namespace DamageAssesment.Api.Employees.Providers
{
logger?.LogError(ex.ToString());
- 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()
{
if (!EmployeeDbContext.Employees.Any())
{
- EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp1", Name = "ABC1", Email = "abc1@gmail.com", OfficePhoneNumber = "12345678",BirthDate=DateTime.Now.AddYears(-18), IsActive = true,PreferredLanguage="en" });
- EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp2", Name = "ABC2", Email = "abc2@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-22), IsActive = true, PreferredLanguage = "fr" });
- EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp3", Name = "ABC3", Email = "abc3@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-30) ,IsActive = true, PreferredLanguage = "fr" });
- EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp4", Name = "ABC4", Email = "abc4@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-20) ,IsActive = true, PreferredLanguage = "en" });
- EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp5", Name = "ABC5", Email = "abc5@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-23) ,IsActive = true, PreferredLanguage = "es" });
- EmployeeDbContext.Employees.Add(new Db.Employee() { Id = "Emp6", Name = "ABC6", Email = "abc6@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-32) ,IsActive = true, PreferredLanguage = "es" });
+ EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 1, EmployeeCode = "Emp1", Name = "ABC1", Email = "abc1@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-18), IsActive = true, PreferredLanguage = "en" });
+ EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 2, EmployeeCode = "Emp2", Name = "ABC2", Email = "abc2@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-22), IsActive = true, PreferredLanguage = "fr" });
+ EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 3, EmployeeCode = "Emp3", Name = "ABC3", Email = "abc3@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-30), IsActive = true, PreferredLanguage = "fr" });
+ EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 4, EmployeeCode = "Emp4", Name = "ABC4", Email = "abc4@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-20), IsActive = true, PreferredLanguage = "en" });
+ EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 5, EmployeeCode = "Emp5", Name = "ABC5", Email = "abc5@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-23), IsActive = true, PreferredLanguage = "es" });
+ EmployeeDbContext.Employees.Add(new Db.Employee() { Id = 6, EmployeeCode = "Emp6", Name = "ABC6", Email = "abc6@gmail.com", OfficePhoneNumber = "12345678", BirthDate = DateTime.Now.AddYears(-32), IsActive = true, PreferredLanguage = "es" });
EmployeeDbContext.SaveChanges();
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/LocationsServiceTest.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/LocationsServiceTest.cs
index 94e518d..cc0ad45 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/LocationsServiceTest.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/LocationsServiceTest.cs
@@ -40,11 +40,11 @@ namespace DamageAssesment.Api.Locations.Test
public async Task GetLocationsByIdAsync_ShouldReturnStatusCode200()
{
var mockLocationService = new Mock();
- var mockResponse = await MockData.getOkResponseLocation("Loc1");
- mockLocationService.Setup(service => service.GetLocationByIdAsync("Loc1")).ReturnsAsync(mockResponse);
+ var mockResponse = await MockData.getOkResponseLocation(1);
+ mockLocationService.Setup(service => service.GetLocationByIdAsync(1)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
- var result = (OkObjectResult)await locationProvider.GetLocationByIdAsync("Loc1");
+ var result = (OkObjectResult)await locationProvider.GetLocationByIdAsync(1);
Assert.Equal(200, result.StatusCode);
}
@@ -55,10 +55,10 @@ namespace DamageAssesment.Api.Locations.Test
{
var mockLocationService = new Mock();
var mockResponse = await MockData.getLocationNotFoundResponse();
- mockLocationService.Setup(service => service.GetLocationByIdAsync("Loc1")).ReturnsAsync(mockResponse);
+ mockLocationService.Setup(service => service.GetLocationByIdAsync(1)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
- var result = (NotFoundResult)await locationProvider.GetLocationByIdAsync("Loc1");
+ var result = (NotFoundResult)await locationProvider.GetLocationByIdAsync(1);
Assert.Equal(404, result.StatusCode);
}
@@ -68,8 +68,8 @@ namespace DamageAssesment.Api.Locations.Test
public async Task PostLocationAsync_ShouldReturnStatusCode200()
{
var mockLocationService = new Mock();
- var mockResponse = await MockData.getOkResponseLocation("Loc1");
- var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
+ var mockResponse = await MockData.getOkResponseLocation(1);
+ var mockInputLocation = new Models.Location { Id = 1, RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
mockLocationService.Setup(service => service.PostLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
@@ -83,11 +83,11 @@ namespace DamageAssesment.Api.Locations.Test
{
var mockLocationService = new Mock();
var mockResponse = await MockData.getLocationNotFoundResponse();
- var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
+ var mockInputLocation = new Models.Location { Id = 1, RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
mockLocationService.Setup(service => service.PostLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
- var result = (BadRequestResult)await locationProvider.CreateLocation(mockInputLocation);
+ var result = (BadRequestObjectResult)await locationProvider.CreateLocation(mockInputLocation);
Assert.Equal(400, result.StatusCode);
}
@@ -98,11 +98,11 @@ namespace DamageAssesment.Api.Locations.Test
{
var mockLocationService = new Mock();
var mockResponse = await MockData.getLocation(true, "update success");
- var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
- mockLocationService.Setup(service => service.UpdateLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
+ var mockInputLocation = new Models.Location { Id = 1, LocationCode ="Loc1", RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
+ mockLocationService.Setup(service => service.UpdateLocationAsync(1,mockInputLocation)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
- var result = (OkObjectResult)await locationProvider.UpdateLocation(mockInputLocation);
+ var result = (OkObjectResult)await locationProvider.UpdateLocation(1,mockInputLocation);
Assert.Equal(200, result.StatusCode);
}
@@ -112,11 +112,11 @@ namespace DamageAssesment.Api.Locations.Test
{
var mockLocationService = new Mock();
var mockResponse = await MockData.getLocation(false, null);
- var mockInputLocation = new Models.Location { Id = "Loc1", RegionId = "R1", Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
- mockLocationService.Setup(service => service.UpdateLocationAsync(mockInputLocation)).ReturnsAsync(mockResponse);
+ var mockInputLocation = new Models.Location { Id = 1, RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
+ mockLocationService.Setup(service => service.UpdateLocationAsync(1,mockInputLocation)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
- var result = (NotFoundResult)await locationProvider.UpdateLocation(mockInputLocation);
+ var result = (NotFoundResult)await locationProvider.UpdateLocation(1,mockInputLocation);
Assert.Equal(404, result.StatusCode);
}
@@ -127,10 +127,10 @@ namespace DamageAssesment.Api.Locations.Test
{
var mockLocationService = new Mock();
var mockResponse = await MockData.getLocation(true, "delete success");
- mockLocationService.Setup(service => service.DeleteLocationAsync("Loc1")).ReturnsAsync(mockResponse);
+ mockLocationService.Setup(service => service.DeleteLocationAsync(1)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
- var result = (OkObjectResult)await locationProvider.DeleteLocation("Loc1");
+ var result = (OkObjectResult)await locationProvider.DeleteLocation(1);
Assert.Equal(200, result.StatusCode);
}
@@ -140,10 +140,10 @@ namespace DamageAssesment.Api.Locations.Test
{
var mockLocationService = new Mock();
var mockResponse = await MockData.getLocation(false, null);
- mockLocationService.Setup(service => service.DeleteLocationAsync("Loc1")).ReturnsAsync(mockResponse);
+ mockLocationService.Setup(service => service.DeleteLocationAsync(1)).ReturnsAsync(mockResponse);
var locationProvider = new LocationsController(mockLocationService.Object);
- var result = (NotFoundResult)await locationProvider.DeleteLocation("Loc1");
+ var result = (NotFoundResult)await locationProvider.DeleteLocation(1);
Assert.Equal(404, result.StatusCode);
}
@@ -180,11 +180,11 @@ namespace DamageAssesment.Api.Locations.Test
public async Task GetRegionAsync_ShouldReturnStatusCode200()
{
var mockRegionService = new Mock();
- var mockResponse = await MockData.getOkResponse("1");
- mockRegionService.Setup(service => service.GetRegionByIdAsync("1")).ReturnsAsync(mockResponse);
+ var mockResponse = await MockData.getOkResponse(1);
+ mockRegionService.Setup(service => service.GetRegionByIdAsync(1)).ReturnsAsync(mockResponse);
var regionProvider = new RegionsController(mockRegionService.Object);
- var result = (OkObjectResult)await regionProvider.GetRegionAsync("1");
+ var result = (OkObjectResult)await regionProvider.GetRegionAsync(1);
Assert.Equal(200, result.StatusCode);
}
@@ -194,10 +194,10 @@ namespace DamageAssesment.Api.Locations.Test
{
var mockRegionService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
- mockRegionService.Setup(service => service.GetRegionByIdAsync("99")).ReturnsAsync(mockResponse);
+ mockRegionService.Setup(service => service.GetRegionByIdAsync(99999)).ReturnsAsync(mockResponse);
var regionProvider = new RegionsController(mockRegionService.Object);
- var result = (NotFoundResult)await regionProvider.GetRegionAsync("99");
+ var result = (NotFoundResult)await regionProvider.GetRegionAsync(99);
Assert.Equal(404, result.StatusCode);
}
@@ -205,7 +205,7 @@ namespace DamageAssesment.Api.Locations.Test
public async Task PostRegionAsync_ShouldReturnStatusCode200()
{
var mockRegionService = new Mock();
- var mockResponse = await MockData.getOkResponse("1");
+ var mockResponse = await MockData.getOkResponse(1);
var mockInputRegion = await MockData.getInputRegionData();
mockRegionService.Setup(service => service.PostRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
@@ -233,12 +233,12 @@ namespace DamageAssesment.Api.Locations.Test
public async Task PutRegionAsync_ShouldReturnStatusCode200()
{
var mockRegionService = new Mock();
- var mockResponse = await MockData.getOkResponse("1");
+ var mockResponse = await MockData.getOkResponse(1);
var mockInputRegion = await MockData.getInputRegionData();
- mockRegionService.Setup(service => service.PutRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
+ mockRegionService.Setup(service => service.PutRegionAsync(1,mockInputRegion)).ReturnsAsync(mockResponse);
var regionProvider = new RegionsController(mockRegionService.Object);
- var result = (OkObjectResult)await regionProvider.PutRegionAsync(mockInputRegion);
+ var result = (OkObjectResult)await regionProvider.PutRegionAsync(1,mockInputRegion);
Assert.Equal(200, result.StatusCode);
}
@@ -249,10 +249,10 @@ namespace DamageAssesment.Api.Locations.Test
var mockRegionService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
var mockInputRegion = await MockData.getInputRegionData();
- mockRegionService.Setup(service => service.PutRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
+ mockRegionService.Setup(service => service.PutRegionAsync(1, mockInputRegion)).ReturnsAsync(mockResponse);
var regionProvider = new RegionsController(mockRegionService.Object);
- var result = (NotFoundObjectResult)await regionProvider.PutRegionAsync(mockInputRegion);
+ var result = (NotFoundObjectResult)await regionProvider.PutRegionAsync(1,mockInputRegion);
Assert.Equal(404, result.StatusCode);
}
@@ -263,10 +263,10 @@ namespace DamageAssesment.Api.Locations.Test
var mockRegionService = new Mock();
var mockResponse = await MockData.getBadRequestResponse();
var mockInputRegion = await MockData.getInputRegionData();
- mockRegionService.Setup(service => service.PutRegionAsync(mockInputRegion)).ReturnsAsync(mockResponse);
+ mockRegionService.Setup(service => service.PutRegionAsync(1, mockInputRegion)).ReturnsAsync(mockResponse);
var regionProvider = new RegionsController(mockRegionService.Object);
- var result = (BadRequestObjectResult)await regionProvider.PutRegionAsync(mockInputRegion);
+ var result = (BadRequestObjectResult)await regionProvider.PutRegionAsync(1, mockInputRegion);
Assert.Equal(400, result.StatusCode);
}
@@ -275,12 +275,12 @@ namespace DamageAssesment.Api.Locations.Test
public async Task DeleteRegionAsync_ShouldReturnStatusCode200()
{
var mockRegionService = new Mock();
- var mockResponse = await MockData.getOkResponse("1");
+ var mockResponse = await MockData.getOkResponse(1);
- mockRegionService.Setup(service => service.DeleteRegionAsync("1")).ReturnsAsync(mockResponse);
+ mockRegionService.Setup(service => service.DeleteRegionAsync(1)).ReturnsAsync(mockResponse);
var regionProvider = new RegionsController(mockRegionService.Object);
- var result = (OkObjectResult)await regionProvider.DeleteRegionAsync("1");
+ var result = (OkObjectResult)await regionProvider.DeleteRegionAsync(1);
Assert.Equal(200, result.StatusCode);
}
@@ -291,10 +291,10 @@ namespace DamageAssesment.Api.Locations.Test
var mockRegionService = new Mock();
var mockResponse = await MockData.getNotFoundResponse();
- mockRegionService.Setup(service => service.DeleteRegionAsync("1")).ReturnsAsync(mockResponse);
+ mockRegionService.Setup(service => service.DeleteRegionAsync(1)).ReturnsAsync(mockResponse);
var regionProvider = new RegionsController(mockRegionService.Object);
- var result = (NotFoundResult)await regionProvider.DeleteRegionAsync("1");
+ var result = (NotFoundResult)await regionProvider.DeleteRegionAsync(1);
Assert.Equal(404, result.StatusCode);
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/MockData.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/MockData.cs
index dec67b8..50d1c8c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/MockData.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations.Test/MockData.cs
@@ -9,13 +9,13 @@ namespace DamageAssesment.Api.Locations.Test
for (int i = 0; i < 10; i++)
{
- list.Append(new Locations.Models.Region { Id = "R" + i, Abbreviation = "AB" + i, Name = "Region " + i });
+ list.Append(new Locations.Models.Region { Id = i, Abbreviation = "AB" + i, Name = "Region " + i });
}
return (true, list, null);
}
- public static async Task<(bool, Locations.Models.Region, string)> getOkResponse(string Id)
+ public static async Task<(bool, Locations.Models.Region, string)> getOkResponse(int Id)
{
var regions = await getOkResponse();
var region = regions.Item2.FirstOrDefault(s => s.Id == Id);
@@ -29,7 +29,7 @@ namespace DamageAssesment.Api.Locations.Test
for (int i = 0; i < 10; i++)
{
- list.Append(new Locations.Models.Location { Id = "Loc"+ i, RegionId = "R"+i, Name ="Location"});
+ list.Append(new Locations.Models.Location { Id = i, RegionId = i, Name = "Location" });
}
return (true, list, null);
}
@@ -39,16 +39,17 @@ namespace DamageAssesment.Api.Locations.Test
return (false, null, null);
}
- public static async Task<(bool, Models.Location, string)> getOkResponseLocation(string Id)
+ public static async Task<(bool, Models.Location, string)> getOkResponseLocation(int Id)
{
var locations = await getOkResponseLocation();
var location = locations.Item2.FirstOrDefault(s => s.Id == Id);
return (true, location, null);
}
- public static async Task<(bool, string)> getLocation(bool value,string message)
+ public static async Task<(bool, Models.Location, string)> getLocation(bool value, string message)
{
- return (value,message);
+ var location = new Models.Location { Id = 1, LocationCode = "Loc1", RegionId = 1, Name = "Location 1", SchoolType = "US", MaintenanceCenter = "1" };
+ return (value, location, message);
}
public static async Task<(bool, Locations.Models.Location, string)> getLocationNotFoundResponse()
@@ -73,7 +74,7 @@ namespace DamageAssesment.Api.Locations.Test
public static async Task 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" };
}
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/LocationsController.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/LocationsController.cs
index d919c07..d9bbea3 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/LocationsController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/LocationsController.cs
@@ -4,12 +4,10 @@ using Microsoft.AspNetCore.Mvc;
namespace DamageAssesment.Api.Locations.Controllers
{
- [Route("api")]
[ApiController]
public class LocationsController : ControllerBase
{
private ILocationsProvider LocationProvider;
-
public LocationsController(ILocationsProvider LocationsProvider)
{
this.LocationProvider = LocationsProvider;
@@ -25,7 +23,7 @@ namespace DamageAssesment.Api.Locations.Controllers
var result = await LocationProvider.GetLocationsAsync();
if (result.IsSuccess)
{
- return Ok(result.locations);
+ return Ok(result.Locations);
}
return NoContent();
@@ -35,7 +33,7 @@ namespace DamageAssesment.Api.Locations.Controllers
///
[HttpGet("Locations/{id}")]
- public async Task GetLocationByIdAsync(string id)
+ public async Task GetLocationByIdAsync(int id)
{
var result = await LocationProvider.GetLocationByIdAsync(id);
@@ -50,15 +48,15 @@ namespace DamageAssesment.Api.Locations.Controllers
/// Update a Location.
///
- [HttpPut("Locations")]
- public async Task UpdateLocation(Models.Location Location)
+ [HttpPut("Locations/{id}")]
+ public async Task UpdateLocation(int id, Models.Location Location)
{
if (Location != null)
{
- var result = await this.LocationProvider.UpdateLocationAsync(Location);
+ var result = await this.LocationProvider.UpdateLocationAsync(id, Location);
if (result.IsSuccess)
{
- return Ok(result.ErrorMessage);
+ return Ok(result.Location);
}
return NotFound();
}
@@ -76,9 +74,9 @@ namespace DamageAssesment.Api.Locations.Controllers
var result = await this.LocationProvider.PostLocationAsync(Location);
if (result.IsSuccess)
{
- return Ok(result.Question);
+ return Ok(result.Location);
}
- return BadRequest();
+ return BadRequest(result.ErrorMessage);
}
return BadRequest();
}
@@ -87,12 +85,12 @@ namespace DamageAssesment.Api.Locations.Controllers
///
[HttpDelete("Locations/{id}")]
- public async Task DeleteLocation(string id)
+ public async Task DeleteLocation(int id)
{
var result = await this.LocationProvider.DeleteLocationAsync(id);
if (result.IsSuccess)
{
- return Ok(result.ErrorMessage);
+ return Ok(result.Location);
}
return NotFound();
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/RegionsController.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/RegionsController.cs
index f69e7ce..172043c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/RegionsController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Controllers/RegionsController.cs
@@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Mvc;
namespace DamageAssesment.Api.Locations.Controllers
{
- [Route("api/[controller]")]
[ApiController]
public class RegionsController : ControllerBase
{
@@ -17,13 +16,13 @@ namespace DamageAssesment.Api.Locations.Controllers
/// Get all regions.2
///
- [HttpGet]
+ [HttpGet("regions")]
public async Task GetRegionsAsync()
{
var result = await regionProvider.GetRegionsAsync();
if (result.IsSuccess)
{
- return Ok(result.regions);
+ return Ok(result.Regions);
}
return NoContent();
}
@@ -31,10 +30,10 @@ namespace DamageAssesment.Api.Locations.Controllers
/// GET request for retrieving a region by its ID.
///
- [HttpGet("{Id}")]
- public async Task GetRegionAsync(string Id)
+ [HttpGet("regions/{id}")]
+ public async Task GetRegionAsync(int id)
{
- var result = await this.regionProvider.GetRegionByIdAsync(Id);
+ var result = await this.regionProvider.GetRegionByIdAsync(id);
if (result.IsSuccess)
{
return Ok(result.Region);
@@ -45,7 +44,7 @@ namespace DamageAssesment.Api.Locations.Controllers
/// POST request for creating a new region.
///
- [HttpPost]
+ [HttpPost("regions")]
public async Task PostRegionAsync(Models.Region region)
{
var result = await this.regionProvider.PostRegionAsync(region);
@@ -59,10 +58,10 @@ namespace DamageAssesment.Api.Locations.Controllers
/// PUT request for updating an existing region.
///
- [HttpPut]
- public async Task PutRegionAsync(Models.Region region)
+ [HttpPut("regions/{id}")]
+ public async Task PutRegionAsync(int id, Models.Region region)
{
- var result = await this.regionProvider.PutRegionAsync(region);
+ var result = await this.regionProvider.PutRegionAsync(id,region);
if (result.IsSuccess)
{
return Ok(result.Region);
@@ -77,10 +76,10 @@ namespace DamageAssesment.Api.Locations.Controllers
///
- [HttpDelete("{Id}")]
- public async Task DeleteRegionAsync(string Id)
+ [HttpDelete("regions/{id}")]
+ public async Task DeleteRegionAsync(int id)
{
- var result = await this.regionProvider.DeleteRegionAsync(Id);
+ var result = await this.regionProvider.DeleteRegionAsync(id);
if (result.IsSuccess)
{
return Ok(result.Region);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Location.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Location.cs
index 98afcf2..1774c9f 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Location.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Location.cs
@@ -6,18 +6,20 @@ namespace DamageAssesment.Api.Locations.Db
public class Location
{
[Key]
+ public int Id { get; set; }
+ [ForeignKey("Region")]
+ public int RegionId { get; set; }
[StringLength(4)]
- public string Id { get; set; }
+ public string LocationCode { get; set; }
[StringLength(50)]
public string Name { get; set; }
- [StringLength(1)]
+ [StringLength(4)]
public string MaintenanceCenter { get; set; }
[StringLength(2)]
public string SchoolType { get; set; }
- [ForeignKey("Region")]
- public string RegionId { get; set; }
+
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/LocationDbContext.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/LocationDbContext.cs
index 407faca..48f0543 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/LocationDbContext.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/LocationDbContext.cs
@@ -2,7 +2,7 @@
namespace DamageAssesment.Api.Locations.Db
{
- public class LocationDbContext:DbContext
+ public class LocationDbContext : DbContext
{
public DbSet Locations { get; set; }
public DbSet Regions { get; set; }
@@ -10,5 +10,17 @@ namespace DamageAssesment.Api.Locations.Db
{
}
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ base.OnModelCreating(modelBuilder);
+ modelBuilder.Entity()
+ .Property(item => item.Id)
+ .ValueGeneratedOnAdd();
+ modelBuilder.Entity()
+ .Property(item => item.Id)
+ .ValueGeneratedOnAdd();
+
+ }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Region.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Region.cs
index 7c03858..c0b64bb 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Region.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Db/Region.cs
@@ -5,15 +5,12 @@ namespace DamageAssesment.Api.Locations.Db
public class Region
{
[Key]
- [StringLength(2)]
- public string Id { get; set; }
-
+ public int Id { get; set; }
+
[StringLength(50)]
public string Name { get; set; }
[StringLength(5)]
public string Abbreviation { get; set; }
-
- // public ICollection Locations { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/ILocationsProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/ILocationsProvider.cs
index 55b847b..cd1de0c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/ILocationsProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/ILocationsProvider.cs
@@ -4,11 +4,11 @@ namespace DamageAssesment.Api.Locations.Interfaces
{
public interface ILocationsProvider
{
- Task<(bool IsSuccess, IEnumerable locations, string ErrorMessage)> GetLocationsAsync();
- Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(string Id);
- Task<(bool IsSuccess, Models.Location Question, string ErrorMessage)> PostLocationAsync(Models.Location Location);
- Task<(bool IsSuccess, string ErrorMessage)> UpdateLocationAsync(Models.Location Location);
- Task<(bool IsSuccess, string ErrorMessage)> DeleteLocationAsync(string Id);
+ Task<(bool IsSuccess, IEnumerable Locations, string ErrorMessage)> GetLocationsAsync();
+ Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(int Id);
+ Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> PostLocationAsync(Models.Location Location);
+ Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> UpdateLocationAsync(int Id, Models.Location Location);
+ Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> DeleteLocationAsync(int Id);
void SeedData();
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/IRegionsProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/IRegionsProvider.cs
index 65f8d0b..22ef8b8 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/IRegionsProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Interfaces/IRegionsProvider.cs
@@ -2,11 +2,11 @@
{
public interface IRegionsProvider
{
- Task<(bool IsSuccess, IEnumerable regions, string ErrorMessage)> GetRegionsAsync();
- Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(string Id);
+ Task<(bool IsSuccess, IEnumerable Regions, string ErrorMessage)> GetRegionsAsync();
+ Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(int Id);
Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PostRegionAsync(Models.Region region);
- Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(Models.Region region);
- Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(string Id);
+ Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(int Id, Models.Region region);
+ Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(int Id);
void SeedData();
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Location.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Location.cs
index 1fdad6a..eafbea6 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Location.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Location.cs
@@ -4,19 +4,12 @@ namespace DamageAssesment.Api.Locations.Models
{
public class Location
{
- [StringLength(4)]
- public string Id { get; set; }
-
- [StringLength(1)]
- public string RegionId { get; set; }
-
- [StringLength(50)]
+ [Key]
+ public int Id { get; set; }
+ public int RegionId { get; set; }
+ public string LocationCode { get; set; }
public string Name { get; set; }
-
- [StringLength(1)]
public string MaintenanceCenter { get; set; }
-
- [StringLength(2)]
public string SchoolType { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Region.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Region.cs
index ebcabeb..e2481a9 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Region.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Models/Region.cs
@@ -4,14 +4,8 @@ namespace DamageAssesment.Api.Locations.Models
{
public class Region
{
-
- [StringLength(1)]
- public string Id { get; set; }
-
- [StringLength(50)]
+ public int Id { get; set; }
public string Name { get; set; }
-
- [StringLength(5)]
public string Abbreviation { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Profiles/LocationProfile.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Profiles/LocationProfile.cs
index ca91e6a..dce65b3 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Profiles/LocationProfile.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Profiles/LocationProfile.cs
@@ -5,6 +5,7 @@
public LocationProfile()
{
CreateMap();
+ CreateMap();
}
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/LocationsProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/LocationsProvider.cs
index 85da34c..5f1d057 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/LocationsProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/LocationsProvider.cs
@@ -20,39 +20,16 @@ namespace DamageAssesment.Api.Locations.Providers
//SeedData();
}
- public async Task<(bool IsSuccess, IEnumerable 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>(Location);
- return (true, result, null);
- }
- return (false, null, "Not found");
- }
- catch (Exception ex)
- {
- logger?.LogError(ex.ToString());
- return (false, null, ex.Message);
- }
-
- }
-
- public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(string Id)
+ public async Task<(bool IsSuccess, IEnumerable Locations, string ErrorMessage)> GetLocationsAsync()
{
try
{
logger?.LogInformation("Query Location");
- var Location = await locationDbContext.Locations.AsNoTracking().FirstOrDefaultAsync(q => q.Id == Id);
- if (Location != null)
+ var locations = await locationDbContext.Locations.AsNoTracking().ToListAsync();
+ if (locations != null)
{
- logger?.LogInformation($"{Location} customer(s) found");
- var result = mapper.Map(Location);
+ logger?.LogInformation($"{locations.Count} Locations(s) found");
+ var result = mapper.Map, IEnumerable>(locations);
return (true, result, null);
}
return (false, null, "Not found");
@@ -63,21 +40,42 @@ namespace DamageAssesment.Api.Locations.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, Models.Location Question, string ErrorMessage)> PostLocationAsync(Models.Location Location)
+
+ public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> GetLocationByIdAsync(int Id)
{
try
{
logger?.LogInformation("Query Location");
- if (!LocationExists(Location.Id))
+ var location = await locationDbContext.Locations.AsNoTracking().FirstOrDefaultAsync(q => q.Id == Id);
+ if (location != null)
{
- Db.Location _location = mapper.Map(Location);
+ logger?.LogInformation($"{location} found");
+ var result = mapper.Map(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(location);
locationDbContext.Locations.Add(_location);
- locationDbContext.SaveChanges();
- return (true, Location, null);
+ await locationDbContext.SaveChangesAsync();
+ location.Id = _location.Id;
+ return (true, location, null);
}
else
{
- return (false, null, "Location is Already exists");
+ return (false, null, "Location code is already exists");
}
}
catch (Exception ex)
@@ -86,57 +84,67 @@ namespace DamageAssesment.Api.Locations.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, string ErrorMessage)> UpdateLocationAsync(Models.Location Location)
+ public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> UpdateLocationAsync(int Id, Models.Location location)
{
try
{
- Db.Location _location = mapper.Map(Location);
- locationDbContext.Entry(_location).State = EntityState.Modified;
- locationDbContext.SaveChanges();
- return (true, "Record updated successfully");
- }
- catch (Exception ex)
- {
-
- logger?.LogError(ex.ToString());
- return (false, ex.Message);
- }
- }
- public async Task<(bool IsSuccess, string ErrorMessage)> DeleteLocationAsync(string Id)
- {
- try
- {
- Db.Location Location = locationDbContext.Locations.AsNoTracking().Where(a => a.Id == Id).FirstOrDefault();
- if (Location == null)
+ if (LocationExists(Id))
{
- return (false, "record not found");
+ Db.Location _location = mapper.Map(location);
+ locationDbContext.Entry(_location).State = EntityState.Modified;
+ await locationDbContext.SaveChangesAsync();
+ return (true, location, "Record updated successfully");
+ }
+ else
+ {
+ return (false, null, "Location is not exists");
}
- locationDbContext.Locations.Remove(Location);
- locationDbContext.SaveChanges();
- return (true, "Record deleted successfully");
}
catch (Exception ex)
{
-
logger?.LogError(ex.ToString());
- return (false, ex.Message);
+ return (false, null, ex.Message);
+ }
+ }
+ public async Task<(bool IsSuccess, Models.Location Location, string ErrorMessage)> DeleteLocationAsync(int Id)
+ {
+ try
+ {
+ Db.Location location = locationDbContext.Locations.AsNoTracking().Where(a => a.Id == Id).FirstOrDefault();
+ if (location == null)
+ {
+ return (false, null, "record not found");
+ }
+ locationDbContext.Locations.Remove(location);
+ await locationDbContext.SaveChangesAsync();
+ return (true, mapper.Map(location), "Record deleted successfully");
+ }
+ catch (Exception ex)
+ {
+ logger?.LogError(ex.ToString());
+ return (false, null, ex.Message);
}
}
- private bool LocationExists(string id)
+ private bool LocationExists(int id)
{
return locationDbContext.Locations.AsNoTracking().Count(e => e.Id == id) > 0;
}
+
+ private bool LocationCodeExists(string locationCode)
+ {
+ return locationDbContext.Locations.AsNoTracking().Count(e => e.LocationCode.ToLower() == locationCode.ToLower()) > 0;
+ }
public void SeedData()
{
if (!locationDbContext.Locations.Any())
{
- locationDbContext.Locations.Add(new Db.Location() { Id = "Loc1", RegionId = "1", Name = "BOB GRAHAM EDUCATION CENTER 1", MaintenanceCenter = "1", SchoolType = "US" });
- locationDbContext.Locations.Add(new Db.Location() { Id = "Loc2", RegionId = "2", Name = "BOB GRAHAM EDUCATION CENTER 2", MaintenanceCenter = "1", SchoolType = "US" });
- locationDbContext.Locations.Add(new Db.Location() { Id = "Loc3", RegionId = "3", Name = "BOB GRAHAM EDUCATION CENTER 3", MaintenanceCenter = "1", SchoolType = "US" });
- locationDbContext.Locations.Add(new Db.Location() { Id = "Loc4", RegionId = "1", Name = "BOB GRAHAM EDUCATION CENTER 4", MaintenanceCenter = "1", SchoolType = "US" });
- locationDbContext.Locations.Add(new Db.Location() { Id = "Loc5", RegionId = "2", Name = "BOB GRAHAM EDUCATION CENTER 5", MaintenanceCenter = "1", SchoolType = "US" });
- locationDbContext.Locations.Add(new Db.Location() { Id = "Loc6", RegionId = "3", Name = "BOB GRAHAM EDUCATION CENTER 6", MaintenanceCenter = "1", SchoolType = "US" });
+ locationDbContext.Locations.Add(new Db.Location() { Id = 1, LocationCode = "Loc1", RegionId = 1, Name = "BOB GRAHAM EDUCATION CENTER 1", MaintenanceCenter = "1", SchoolType = "US" });
+ locationDbContext.Locations.Add(new Db.Location() { Id = 2, LocationCode = "Loc2", RegionId = 2, Name = "BOB GRAHAM EDUCATION CENTER 2", MaintenanceCenter = "1", SchoolType = "US" });
+ locationDbContext.Locations.Add(new Db.Location() { Id = 3, LocationCode = "Loc3", RegionId = 3, Name = "BOB GRAHAM EDUCATION CENTER 3", MaintenanceCenter = "1", SchoolType = "US" });
+ locationDbContext.Locations.Add(new Db.Location() { Id = 4, LocationCode = "Loc4", RegionId = 1, Name = "BOB GRAHAM EDUCATION CENTER 4", MaintenanceCenter = "1", SchoolType = "US" });
+ locationDbContext.Locations.Add(new Db.Location() { Id = 5, LocationCode = "Loc5", RegionId = 2, Name = "BOB GRAHAM EDUCATION CENTER 5", MaintenanceCenter = "1", SchoolType = "US" });
+ locationDbContext.Locations.Add(new Db.Location() { Id = 6, LocationCode = "Loc6", RegionId = 3, Name = "BOB GRAHAM EDUCATION CENTER 6", MaintenanceCenter = "1", SchoolType = "US" });
locationDbContext.SaveChanges();
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/RegionsProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/RegionsProvider.cs
index 0ea0b3f..4f33fee 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/RegionsProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Locations/Providers/RegionsProvider.cs
@@ -19,7 +19,7 @@ namespace DamageAssesment.Api.Locations.Providers
//SeedData();
}
- public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(string Id)
+ public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> GetRegionByIdAsync(int Id)
{
try
{
@@ -41,7 +41,7 @@ namespace DamageAssesment.Api.Locations.Providers
}
}
- public async Task<(bool IsSuccess, IEnumerable regions, string ErrorMessage)> GetRegionsAsync()
+ public async Task<(bool IsSuccess, IEnumerable Regions, string ErrorMessage)> GetRegionsAsync()
{
try
{
@@ -69,11 +69,10 @@ namespace DamageAssesment.Api.Locations.Providers
{
if (region != null)
{
- var regions = await locationDbContext.Regions.AsNoTracking().ToListAsync();
-
- region.Id = Convert.ToString(regions.Count + 1);
- locationDbContext.Regions.Add(mapper.Map(region));
- locationDbContext.SaveChanges();
+ var _region = mapper.Map(region);
+ locationDbContext.Regions.Add(_region);
+ await locationDbContext.SaveChangesAsync();
+ region.Id = _region.Id;
logger?.LogInformation($"{region} added successfuly");
return (true, region, "Successful");
}
@@ -90,30 +89,38 @@ namespace DamageAssesment.Api.Locations.Providers
}
}
- public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(Models.Region region)
+ public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> PutRegionAsync(int Id, Models.Region region)
{
try
{
if (region != null)
{
- var _region = await locationDbContext.Regions.AsNoTracking().Where(s => s.Id == region.Id).FirstOrDefaultAsync();
+ var _region = await locationDbContext.Regions.AsNoTracking().Where(s => s.Id == Id).FirstOrDefaultAsync();
if (_region != null)
{
- locationDbContext.Regions.Update(mapper.Map(region));
- locationDbContext.SaveChanges();
- return (true, region, "Region updated Successfuly");
+ if (RegionExists(region.Id))
+ {
+ locationDbContext.Regions.Update(mapper.Map(region));
+ locationDbContext.SaveChanges();
+ return (true, region, "Region updated Successfuly");
+ }
+ else
+ {
+ logger?.LogInformation($"RegionID: {Id} Not exists");
+ return (false, null, "Region not exists");
+ }
}
else
{
- logger?.LogInformation($"RegionID: {region.Id} Not found");
+ logger?.LogInformation($"RegionID: {Id} Not found");
return (false, null, "Not Found");
}
}
else
{
- logger?.LogInformation($"RegionID: {region.Id} Bad Request");
+ logger?.LogInformation($"RegionID: {Id} Bad Request");
return (false, null, "Bad request");
}
}
@@ -124,7 +131,7 @@ namespace DamageAssesment.Api.Locations.Providers
}
}
- public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(string Id)
+ public async Task<(bool IsSuccess, Models.Region Region, string ErrorMessage)> DeleteRegionAsync(int Id)
{
try
{
@@ -149,13 +156,18 @@ namespace DamageAssesment.Api.Locations.Providers
}
}
+ private bool RegionExists(int id)
+ {
+ return locationDbContext.Regions.AsNoTracking().Count(e => e.Id == id) > 0;
+ }
+
public void SeedData()
{
if (!locationDbContext.Regions.Any())
{
- locationDbContext.Regions.Add(new Db.Region() { Id = "1", Name = "North", Abbreviation = "N" });
- locationDbContext.Regions.Add(new Db.Region() { Id = "2", Name = "South", Abbreviation = "S" });
- locationDbContext.Regions.Add(new Db.Region() { Id = "3", Name = "Central", Abbreviation = "C" });
+ locationDbContext.Regions.Add(new Db.Region() { Id = 1, Name = "North", Abbreviation = "N" });
+ locationDbContext.Regions.Add(new Db.Region() { Id = 2, Name = "South", Abbreviation = "S" });
+ locationDbContext.Regions.Add(new Db.Region() { Id = 3, Name = "Central", Abbreviation = "C" });
locationDbContext.SaveChanges();
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Controllers/QuestionsController.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Controllers/QuestionsController.cs
index 19c32bc..17024eb 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Controllers/QuestionsController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Controllers/QuestionsController.cs
@@ -40,7 +40,7 @@ namespace DamageAssesment.Api.Questions.Controllers
[Route("Questions/{id}/{language:alpha}")]
[Route("Questions/{id:int}")]
[HttpGet]
- public async Task GetQuestionByIdAsync(string? language,int id)
+ public async Task GetQuestionByIdAsync(int id, string? language)
{
var result = await this.questionsProvider.GetQuestionAsync(id, language);
if (result.IsSuccess)
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Interfaces/IQuestionsProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Interfaces/IQuestionsProvider.cs
index 59a805b..f8e13c8 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Interfaces/IQuestionsProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Interfaces/IQuestionsProvider.cs
@@ -4,12 +4,12 @@ namespace DamageAssesment.Api.Questions.Interfaces
{
public interface IQuestionsProvider : IQuestionTypesProvider
{
- Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> GetQuestionAsync(int id, string language);
- Task<(bool IsSuccess, IEnumerable Questions, string ErrorMessage)> GetQuestionsAsync(string language);
+ Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> GetQuestionAsync(int id, string language);
+ Task<(bool IsSuccess, IEnumerable Questions, string ErrorMessage)> GetQuestionsAsync(string language);
Task<(bool IsSuccess, List SurveyQuestions, string ErrorMessage)> GetSurveyQuestionAsync(int surveyId,string language);
- Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question);
- Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question);
- Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> DeleteQuestionAsync(int id);
+ Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question);
+ Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question);
+ Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> DeleteQuestionAsync(int id);
Task<(bool IsSuccess, IEnumerable QuestionCategories, string ErrorMessage)> GetQuestionCategoriesAsync(string? language);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/Question.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/Question.cs
index 7900097..b6c1668 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/Question.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/Question.cs
@@ -1,29 +1,18 @@
-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 Questions { get; set; }
}
public class BaseQuestion
{
public int Id { get; set; }
- //public int QuestionTypeID { get; set; }
-
public string TypeText { get; set; } = string.Empty;
-
public int QuestionNumber { get; set; }
public bool IsRequired { get; set; }
public bool Comment { get; set; }
-
public bool Key { get; set; }
public int? SurveyId { get; set; }
public int CategoryId { get; set; }
- // public int? Survey_SurveyID { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/QuestionsTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/QuestionsTranslation.cs
index af39cdd..28548f1 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/QuestionsTranslation.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/QuestionsTranslation.cs
@@ -3,10 +3,10 @@
public class QuestionsTranslation
{
public string QuestionText { get; set; }
- public string Language { get; set; } = "En";
+ public string Language { get; set; } = "en";
}
- public class MultiLanguage
+ public class MultiLanguage : BaseQuestion
{
- public object questionText { get; set; }
+ public Dictionary Text { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/SurveyQuestion.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/SurveyQuestion.cs
index a3a5513..8f4fd7b 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/SurveyQuestion.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Models/SurveyQuestion.cs
@@ -5,6 +5,6 @@
public int CategoryId { get; set; }
public string IconName { get; set; }
public string IconLibrary { get; set; }
- public List Questions { get; set; }
+ public List QuestionsText { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Profiles/QuestionProfile.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Profiles/QuestionProfile.cs
index 5c0f36e..59b402a 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Profiles/QuestionProfile.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Profiles/QuestionProfile.cs
@@ -8,7 +8,7 @@ namespace DamageAssesment.Api.Questions.Profiles
{
CreateMap().ForMember(dest => dest.TypeText,
opt => opt.MapFrom(src => src.QuestionType.TypeText));
- CreateMap().ForMember(dest => dest.TypeText,
+ CreateMap().ForMember(dest => dest.TypeText,
opt => opt.MapFrom(src => src.QuestionType.TypeText));
CreateMap();
CreateMap();
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Program.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Program.cs
index b978465..073cb10 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Program.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Program.cs
@@ -2,7 +2,6 @@ using DamageAssesment.Api.Questions.Db;
using DamageAssesment.Api.Questions.Interfaces;
using DamageAssesment.Api.Questions.Providers;
using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Options;
using System.Reflection;
var builder = WebApplication.CreateBuilder(args);
@@ -16,7 +15,6 @@ builder.Services.AddControllers();
builder.Services.AddScoped();
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
-
builder.Services.AddEndpointsApiExplorer();
//builder.Services.AddSwaggerGen();
builder.Services.AddSwaggerGen(c =>
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Questions/Providers/QuestionsProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Questions/Providers/QuestionsProvider.cs
index 26aa866..0b140e0 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Questions/Providers/QuestionsProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Questions/Providers/QuestionsProvider.cs
@@ -2,11 +2,7 @@
using DamageAssesment.Api.Questions.Db;
using DamageAssesment.Api.Questions.Interfaces;
using DamageAssesment.Api.Questions.Models;
-using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Metadata.Internal;
-using System.Collections;
-using System.Collections.Generic;
namespace DamageAssesment.Api.Questions.Providers
{
@@ -130,7 +126,7 @@ namespace DamageAssesment.Api.Questions.Providers
}
return QuestionTranslations;
}
- public MultiLanguage CreateMultiLanguageObject(List questions)
+ public Dictionary CreateMultiLanguageObject(List questions)
{
MultiLanguage MultiLanguage = new MultiLanguage();
Dictionary dict = new Dictionary();
@@ -138,10 +134,10 @@ namespace DamageAssesment.Api.Questions.Providers
{
dict.Add(item.Language, item.QuestionText);
}
- MultiLanguage.questionText = dict;
- return MultiLanguage;
+ //MultiLanguage.questionText = dict;
+ return dict;
}
- public async Task<(bool IsSuccess, IEnumerable Questions, string ErrorMessage)> GetQuestionsAsync(string language)
+ public async Task<(bool IsSuccess, IEnumerable Questions, string ErrorMessage)> GetQuestionsAsync(string language)
{
try
{
@@ -151,10 +147,10 @@ namespace DamageAssesment.Api.Questions.Providers
{
//logger?.LogInformation($"{question} customer(s) found");
- var result = mapper.Map, IEnumerable>(questions);
- foreach (var question in result)
+ var result = mapper.Map, IEnumerable>(questions);
+ foreach (var item in result)
{
- question.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(question.Id, language));
+ item.Text = CreateMultiLanguageObject(GetQuestionsTranslations(item.Id, language));
}
return (true, result, null);
}
@@ -166,7 +162,7 @@ namespace DamageAssesment.Api.Questions.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> GetQuestionAsync(int id, string language)
+ public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> GetQuestionAsync(int id, string language)
{
try
{
@@ -175,8 +171,8 @@ namespace DamageAssesment.Api.Questions.Providers
if (question != null)
{
logger?.LogInformation($"{question} customer(s) found");
- var result = mapper.Map(question);
- result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(id, language));
+ var result = mapper.Map(question);
+ result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(id, language));
return (true, result, null);
}
return (false, null, "Not found");
@@ -187,11 +183,11 @@ namespace DamageAssesment.Api.Questions.Providers
return (false, null, ex.Message);
}
}
- public List GetSurveyQuestion(List questions, string language)
+ public List GetSurveyQuestion(List questions, string language)
{
foreach (var item in questions)
{
- item.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(item.Id, language));
+ item.Text = CreateMultiLanguageObject(GetQuestionsTranslations(item.Id, language));
}
return questions;
}
@@ -214,7 +210,7 @@ namespace DamageAssesment.Api.Questions.Providers
CategoryId = item.Id,
IconLibrary = item.IconLibrary,
IconName = item.IconName,
- Questions = GetSurveyQuestion(mapper.Map, List>(questions.Where(a => a.CategoryId == item.Id).ToList()), language)
+ QuestionsText = GetSurveyQuestion(mapper.Map, List>(questions.Where(a => a.CategoryId == item.Id).ToList()), language)
});
}
@@ -229,7 +225,7 @@ namespace DamageAssesment.Api.Questions.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question)
+ public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> PostQuestionAsync(Models.Question Question)
{
try
{
@@ -242,8 +238,8 @@ namespace DamageAssesment.Api.Questions.Providers
questionDbContext.QuestionsTranslations.AddRange(dbquestiontranslation);
questionDbContext.SaveChanges();
Question.Id = dbquestion.Id;
- var result = mapper.Map(dbquestion);
- result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id,""));
+ var result = mapper.Map(dbquestion);
+ result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id,""));
return (true, result, null);
}
catch (Exception ex)
@@ -252,7 +248,7 @@ namespace DamageAssesment.Api.Questions.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question)
+ public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> UpdateQuestionAsync(Models.Question Question)
{
try
{
@@ -266,8 +262,8 @@ namespace DamageAssesment.Api.Questions.Providers
dbquestiontranslation.ForEach(i => i.QuestionId = dbquestion.Id);
questionDbContext.QuestionsTranslations.AddRange(dbquestiontranslation);
questionDbContext.SaveChanges();
- var result = mapper.Map(dbquestion);
- result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
+ var result = mapper.Map(dbquestion);
+ result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
return (true, result, null);
}
catch (Exception ex)
@@ -277,7 +273,7 @@ namespace DamageAssesment.Api.Questions.Providers
return (false, null, ex.Message);
}
}
- public async Task<(bool IsSuccess, Models.MultiLanQuestion Question, string ErrorMessage)> DeleteQuestionAsync(int id)
+ public async Task<(bool IsSuccess, Models.MultiLanguage Question, string ErrorMessage)> DeleteQuestionAsync(int id)
{
try
{
@@ -285,8 +281,8 @@ namespace DamageAssesment.Api.Questions.Providers
if (question != null)
{
- var result = mapper.Map(question);
- result.Questions = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
+ var result = mapper.Map(question);
+ result.Text = CreateMultiLanguageObject(GetQuestionsTranslations(result.Id, ""));
questionDbContext.Questions.Remove(question);
questionDbContext.SaveChanges();
return (true, result, $"QuestionID {id} deleted Successfuly");
diff --git a/DamageAssesmentApi/DamageAssesment.Api.QuestionsTest/MockData.cs b/DamageAssesmentApi/DamageAssesment.Api.QuestionsTest/MockData.cs
index 363ed98..8b13b70 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.QuestionsTest/MockData.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.QuestionsTest/MockData.cs
@@ -5,13 +5,13 @@ namespace DamageAssesment.Api.Questions.Test
public class MockData
{
- public static async Task<(bool, IEnumerable, string)> getOkResponse()
+ public static async Task<(bool, IEnumerable, string)> getOkResponse()
{
- IEnumerable list = new List();
+ IEnumerable list = new List();
for (int i = 0; i < 10; i++)
{
- list.Append(new Questions.Models.MultiLanQuestion { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId=i });
+ list.Append(new Questions.Models.MultiLanguage { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId=i });
}
return (true, list, null);
}
@@ -23,38 +23,38 @@ namespace DamageAssesment.Api.Questions.Test
for (int i = 0; i < 10; i++)
{
- List question = new List();
- question.Add(new Models.MultiLanQuestion { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId = i });
+ List question = new List();
+ question.Add(new Models.MultiLanguage { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, CategoryId = i });
list.Append(new Questions.Models.SurveyQuestions
{
CategoryId = i,
IconLibrary = "img" + i,
IconName = "Category " + i,
- Questions = question
+ QuestionsText = question
});
}
return (true, list, null);
}
- public static async Task<(bool, Questions.Models.MultiLanQuestion, string)> getOkResponse(int Id)
+ public static async Task<(bool, Questions.Models.MultiLanguage, string)> getOkResponse(int Id)
{
var Questions = await getOkResponse();
var Question = Questions.Item2.FirstOrDefault(s => s.Id == Id);
return (true, Question, null);
}
- public static async Task<(bool, Questions.Models.MultiLanQuestion, string)> getBadRequestResponse()
+ public static async Task<(bool, Questions.Models.MultiLanguage, string)> getBadRequestResponse()
{
return (false, null, "Bad Request");
}
- public static async Task<(bool, Questions.Models.MultiLanQuestion, string)> getNotFoundResponse()
+ public static async Task<(bool, Questions.Models.MultiLanguage, string)> getNotFoundResponse()
{
return (false, null, "Not Found");
}
- public static async Task<(bool, IEnumerable, string)> getNoContentResponse()
+ public static async Task<(bool, IEnumerable, string)> getNoContentResponse()
{
- IEnumerable list = new List();
+ IEnumerable list = new List();
return (false, list, null);
}
public static async Task<(bool, List, string)> getNoSurveyContentResponse()
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Controllers/SurveyResponsesController.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Controllers/SurveyResponsesController.cs
index 5b141a8..e5f3917 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Controllers/SurveyResponsesController.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Controllers/SurveyResponsesController.cs
@@ -6,7 +6,6 @@ using Microsoft.Extensions.Configuration;
namespace DamageAssesment.Api.SurveyResponses.Controllers
{
- [Route("api")]
[ApiController]
public class SurveyResponsesController : ControllerBase
{
@@ -20,7 +19,7 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
/// GET request for retrieving survey responses.
///
- [HttpGet("SurveyResponses")]
+ [HttpGet("Responses")]
public async Task 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.
///
- [HttpGet("SurveyResponses/{surveyId}")]
- public async Task GetSurveyResponsesAsync(int surveyId)
+ [HttpGet("Responses/BySurvey/{surveyid}")]
+ public async Task GetSurveyResponsesAsync(int surveyid)
{
- var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAsync(surveyId);
+ var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAsync(surveyid);
if (result.IsSuccess)
{
return Ok(result.SurveyResponses);
@@ -51,13 +50,13 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
///
/// GET request for retrieving survey responses by survey and location IDs.
///
- /// The ID of the survey for which responses are to be retrieved.
- /// The ID of the location for which responses are to be retrieved.
+ /// The ID of the survey for which responses are to be retrieved.
+ /// The ID of the location for which responses are to be retrieved.
- [HttpGet("Responses/{surveyId}/{locationId}")]
- public async Task GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, string locationId)
+ [HttpGet("Responses/{surveyid}/{locationid}")]
+ public async Task GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid)
{
- var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyId, locationId);
+ var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid);
if (result.IsSuccess)
{
return Ok(result.SurveyResponses);
@@ -72,10 +71,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
/// The ID of the question for which responses are to be retrieved.
/// The answer for which responses are to be retrieved.
- [HttpGet("ResponsesByAnswer/{surveyId}/{questionId}/{answer}")]
- public async Task GetSurveyResponsesByAnswerAsyncAsync(int surveyId, int questionId, string answer)
+ [HttpGet("Responses/ByAnswer/{surveyid}/{questionid}/{answer}")]
+ public async Task GetSurveyResponsesByAnswerAsyncAsync(int surveyid, int questionid, string answer)
{
- var result = await surveyResponseProvider.GetResponsesByAnswerAsync(surveyId, questionId, answer);
+ var result = await surveyResponseProvider.GetResponsesByAnswerAsync(surveyid, questionid, answer);
if (result.IsSuccess)
{
return Ok(result.SurveyResponses);
@@ -88,10 +87,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
///
/// The ID of the survey for which answers are to be retrieved.
- [HttpGet("AnswersByRegion/{surveyId}")]
- public async Task GetAnswersByRegionAsync(int surveyId)
+ [HttpGet("Responses/ByRegion/{surveyid}")]
+ public async Task GetAnswersByRegionAsync(int surveyid)
{
- var result = await this.surveyResponseProvider.GetAnswersByRegionAsync(surveyId);
+ var result = await this.surveyResponseProvider.GetAnswersByRegionAsync(surveyid);
if (result.IsSuccess)
{
return Ok(result.Answers);
@@ -103,10 +102,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
///
/// The ID of the survey for which responses are to be retrieved.
- [HttpGet("AnswersByMaintenanceCenter/{surveyId}")]
- public async Task GetAnswersByMaintenaceCentersync(int surveyId)
+ [HttpGet("Responses/ByMaintenanceCenter/{surveyid}")]
+ public async Task GetAnswersByMaintenaceCentersync(int surveyid)
{
- var result = await this.surveyResponseProvider.GetSurveyResponsesByMaintenanceCenterAsync(surveyId);
+ var result = await this.surveyResponseProvider.GetSurveyResponsesByMaintenanceCenterAsync(surveyid);
if (result.IsSuccess)
{
return Ok(result.SurveyResponses);
@@ -118,10 +117,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
///
/// The ID of the survey response to be retrieved.
- [HttpGet("SurveyResponse/{Id}")]
- public async Task GetSurveyResponseByIdAsync(int Id)
+ [HttpGet("Responses/{id}")]
+ public async Task GetSurveyResponseByIdAsync(int id)
{
- var result = await this.surveyResponseProvider.GetSurveyResponseByIdAsync(Id);
+ var result = await this.surveyResponseProvider.GetSurveyResponseByIdAsync(id);
if (result.IsSuccess)
{
return Ok(result.SurveyResponse);
@@ -134,7 +133,7 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
///
/// The survey response object to be created.
- [HttpPost("SurveyResponses")]
+ [HttpPost("Responses")]
public async Task PostSurveysAsync(Models.SurveyResponse surveyResponse)
{
var result = await this.surveyResponseProvider.PostSurveyResponseAsync(surveyResponse);
@@ -150,10 +149,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
/// The ID of the survey response to be updated.
/// The updated survey response object.
- [HttpPut("SurveyResponses/{Id}")]
- public async Task PutSurveyResponseAsync(int Id, Models.SurveyResponse surveyResponse)
+ [HttpPut("Responses/{id}")]
+ public async Task PutSurveyResponseAsync(int id, Models.SurveyResponse surveyResponse)
{
- var result = await this.surveyResponseProvider.PutSurveyResponseAsync(Id, surveyResponse);
+ var result = await this.surveyResponseProvider.PutSurveyResponseAsync(id, surveyResponse);
if (result.IsSuccess)
{
return Ok(result.SurveyResponse);
@@ -167,10 +166,10 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
/// DELETE request for deleting an existing survey response.
///
- [HttpDelete("SurveyResponses/{Id}")]
- public async Task DeleteSurveyResponseAsync(int Id)
+ [HttpDelete("Responses/{id}")]
+ public async Task DeleteSurveyResponseAsync(int id)
{
- var result = await this.surveyResponseProvider.DeleteSurveyResponseAsync(Id);
+ var result = await this.surveyResponseProvider.DeleteSurveyResponseAsync(id);
if (result.IsSuccess)
{
return Ok(result.SurveyResponse);
@@ -182,7 +181,7 @@ namespace DamageAssesment.Api.SurveyResponses.Controllers
///
/// The answers to be submitted for the survey.
- [HttpPost("SurveyResponses/Answers")]
+ [HttpPost("Responses/Answers")]
public async Task PostSurveyAnswersAsync(Request request)
{
var result = await this.surveyResponseProvider.PostSurveyAnswersAsync(request);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Db/SurveyResponse.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Db/SurveyResponse.cs
index ea9ed5e..2169097 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Db/SurveyResponse.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Db/SurveyResponse.cs
@@ -10,14 +10,12 @@ namespace DamageAssesment.Api.SurveyResponses.Db
[ForeignKey("Survey")]
public int SurveyId { get; set; }
-
- [StringLength(4)]
[ForeignKey("Location")]
- public string LocationId { get; set; }
+ public int LocationId { get; set; }
[StringLength(6)]
[ForeignKey("Employee")]
- public string EmployeeId { get; set; }
+ public int EmployeeId { get; set; }
public DateTime? CreatedDate { get; set; } = DateTime.Now;
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/IEmployeeServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/IEmployeeServiceProvider.cs
index a402c30..62031d5 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/IEmployeeServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/IEmployeeServiceProvider.cs
@@ -5,6 +5,6 @@ namespace DamageAssesment.Api.SurveyResponses.Interfaces
public interface IEmployeeServiceProvider
{
Task> getEmployeesAsync();
- Task getEmployeeAsync(string employeeID);
+ Task getEmployeeAsync(int employeeId);
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/ISurveysResponse.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/ISurveysResponse.cs
index 5cdd198..536353c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/ISurveysResponse.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Interfaces/ISurveysResponse.cs
@@ -13,7 +13,7 @@ namespace DamageAssesment.Api.SurveyResponses.Interfaces
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> DeleteSurveyResponseAsync(int Id);
Task<(bool IsSuccess, dynamic SurveyResponse, string ErrorMessage)> GetSurveyResponseByIdAsync(int responseId);
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAsync(int surveyId);
- Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, string location);
+ Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, int locationId);
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesByMaintenanceCenterAsync(int surveyId);
Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetResponsesByAnswerAsync(int surveyId, int questionId, string answer);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AggregateAnswer.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AggregateAnswer.cs
deleted file mode 100644
index d728e1d..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AggregateAnswer.cs
+++ /dev/null
@@ -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; }
-
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AggregateResult.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AggregateResult.cs
deleted file mode 100644
index ef8d174..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AggregateResult.cs
+++ /dev/null
@@ -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; }
-
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Answer.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Answer.cs
index cab6f5b..d607a2f 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Answer.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Answer.cs
@@ -6,11 +6,11 @@ namespace DamageAssesment.Api.SurveyResponses.Models
{
public int Id { get; set; }
public int QuestionId { get; set; }
- public string? LocationId { get; set; }
+ public int LocationId { get; set; }
public string AnswerText { get; set; }
- public string? Comment { get; set; }
+ public string Comment { get; set; }
public int SurveyResponseId { get; set; }
- public string? RegionId { get; set; }
+ public int RegionId { get; set; }
// public string? Name { get; set; }
// public string? Abbreviation { get; set; }
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AnswerData.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AnswerData.cs
deleted file mode 100644
index cee0699..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/AnswerData.cs
+++ /dev/null
@@ -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 Answers { get; set; }
-
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Employee.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Employee.cs
index c1fb576..9a06020 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Employee.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Employee.cs
@@ -4,18 +4,13 @@ namespace DamageAssesment.Api.SurveyResponses.Models
{
public class Employee
{
- public string Id { get; set; }
-
- [StringLength(50)]
+ public int Id { get; set; }
+ public string EmployeeCode { get; set; }
public string Name { get; set; }
-
public DateTime BirthDate { get; set; }
-
- [StringLength(50)]
public string OfficePhoneNumber { get; set; }
-
- [StringLength(50)]
public string Email { get; set; }
public bool IsActive { get; set; }
+ public string? PreferredLanguage { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Location.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Location.cs
index 4c7f846..078a5ef 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Location.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Location.cs
@@ -2,8 +2,8 @@
{
public class Location
{
- public string Id { get; set; }
- public string RegionId { get; set; }
+ public int Id { get; set; }
+ public int RegionId { get; set; }
public string Name { get; set; }
public string MaintenanceCenter { get; set; }
public string SchoolType { get; set; }
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Question.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Question.cs
index ad18bf1..37abb4b 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Question.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Question.cs
@@ -1,24 +1,17 @@
-using System.ComponentModel.DataAnnotations;
+using System.Collections.Generic;
namespace DamageAssesment.Api.SurveyResponses.Models
{
- public class Question
+ public class Question
{
public int Id { get; set; }
- public List Questions { get; set; }
-
- //public int QuestionTypeID { get; set; }
-
- public string TypeText { get; set; } = string.Empty;
-
+ public string TypeText { get; set; }
public int QuestionNumber { get; set; }
public bool IsRequired { get; set; }
public bool Comment { get; set; }
-
public bool Key { get; set; }
- public int? SurveyId { get; set; }
- //public string QuestionGroup { get; set; }
+ public int SurveyId { get; set; }
public int CategoryId { get; set; }
- // public int? Survey_SurveyID { get; set; }
+ public Dictionary Text { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/QuestionsTranslation.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/QuestionsTranslation.cs
deleted file mode 100644
index e347a5c..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/QuestionsTranslation.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace DamageAssesment.Api.SurveyResponses.Models
-{
- public class QuestionsTranslation
- {
- public string QuestionText { get; set; }
- public string Language { get; set; } = "En";
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Region.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Region.cs
index b1941d2..3fc5ad7 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Region.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Region.cs
@@ -4,7 +4,7 @@ namespace DamageAssesment.Api.SurveyResponses.Models
{
public class Region
{
- public string Id { get; set; }
+ public int Id { get; set; }
public string Name { get; set; }
public string Abbreviation { get; set; }
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Request.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Request.cs
index 53b3044..5060914 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Request.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Request.cs
@@ -3,8 +3,13 @@
public class Request
{
public int SurveyId { get; set; }
- public string LocationId { get; set; }
- public string EmployeeId { get; set; }
+ public int LocationId { get; set; }
+ public int EmployeeId { get; set; }
+ public string? ClientDevice { get; set; }
+ public string? KeyAnswerResult { get; set; }
+ public double? Longitute { get; set; }
+ public double? Latitude { get; set; }
+ public DateTime? CreatedDate { get; set; } = DateTime.Now;
public List Answers { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/ResultData.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/ResultData.cs
deleted file mode 100644
index 4df1631..0000000
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/ResultData.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace DamageAssesment.Api.SurveyResponses.Models
-{
- public class ResultData
- {
- public List Regions { get; set; }
-
- }
-}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Survey.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Survey.cs
index 506a2f4..b47193e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Survey.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/Survey.cs
@@ -6,9 +6,9 @@ namespace DamageAssesment.Api.SurveyResponses.Models
{
public int Id { get; set; }
public bool IsEnabled { get; set; }
- public DateTime? StartDate { get; set; }
- public DateTime? EndDate { get; set; }
+ public DateTime StartDate { get; set; }
+ public DateTime EndDate { get; set; }
public DateTime CreatedDate { get; set; }
- public IEnumerable Titles { get; set; }
+ public Dictionary Titles { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/SurveyResponse.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/SurveyResponse.cs
index ccaffdc..37862ca 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/SurveyResponse.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Models/SurveyResponse.cs
@@ -7,12 +7,12 @@ namespace DamageAssesment.Api.SurveyResponses.Models
{
public int Id { get; set; }
public int SurveyId { get; set; }
- public string LocationId { get; set; }
- public string EmployeeId { get; set; }
- public DateTime? CreatedDate { get; set; }
- public string? ClientDevice { get; set; }
- public string? KeyAnswerResult { get; set; }
- public double? Longitute { get; set; }
- public double? Latitude { get; set; }
+ public int LocationId { get; set; }
+ public int EmployeeId { get; set; }
+ public DateTime CreatedDate { get; set; }
+ public string ClientDevice { get; set; }
+ public string KeyAnswerResult { get; set; }
+ public double Longitute { get; set; }
+ public double Latitude { get; set; }
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Providers/SurveyResponsesProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Providers/SurveyResponsesProvider.cs
index ec5bcc3..1f82d8c 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Providers/SurveyResponsesProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Providers/SurveyResponsesProvider.cs
@@ -31,19 +31,19 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
this.questionServiceProvider = questionServiceProvider;
this.surveyServiceProvider = surveyServiceProvider;
this.mapper = mapper;
- //seedData();
+ // seedData();
}
private void seedData()
{
if (!surveyResponseDbContext.SurveyResponses.Any())
{
- surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 1, SurveyId = 1, EmployeeId = "Emp1", LocationId = "Loc1", ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
- surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 2, SurveyId = 1, EmployeeId = "Emp2", LocationId = "Loc2", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
- surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 3, SurveyId = 3, EmployeeId = "Emp4", LocationId = "Loc1", ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
- surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 4, SurveyId = 4, EmployeeId = "Emp1", LocationId = "Loc2", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
- surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 6, SurveyId = 1, EmployeeId = "Emp4", LocationId = "Loc2", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
- surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 7, SurveyId = 1, EmployeeId = "Emp4", LocationId = "Loc3", ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "", CreatedDate = DateTime.Now });
+ surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 1, SurveyId = 1, EmployeeId = 1, LocationId = 1, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
+ surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 2, SurveyId = 1, EmployeeId = 2, LocationId = 2, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
+ surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 3, SurveyId = 3, EmployeeId = 4, LocationId = 1, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
+ surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 4, SurveyId = 4, EmployeeId = 1, LocationId = 2, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "false", CreatedDate = DateTime.Now });
+ surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 6, SurveyId = 1, EmployeeId = 4, LocationId = 2, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
+ surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { Id = 7, SurveyId = 1, EmployeeId = 4, LocationId = 3, ClientDevice = "Desktop", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "false", CreatedDate = DateTime.Now });
surveyResponseDbContext.SaveChanges();
}
}
@@ -136,7 +136,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
}
}
- public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, string locationId)
+ public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, int locationId)
{
try
{
@@ -286,19 +286,14 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
{
if (SurveyResponse != null)
{
- var _SurveyResponse = await surveyResponseDbContext.SurveyResponses.Where(s => s.Id == Id).FirstOrDefaultAsync();
+ var _SurveyResponse = await surveyResponseDbContext.SurveyResponses.AsNoTracking().Where(s => s.Id == Id).FirstOrDefaultAsync();
if (_SurveyResponse != null)
{
- _SurveyResponse.SurveyId = SurveyResponse.SurveyId;
- _SurveyResponse.EmployeeId = SurveyResponse.EmployeeId;
- _SurveyResponse.LocationId = SurveyResponse.LocationId;
- _SurveyResponse.ClientDevice = SurveyResponse.ClientDevice;
- _SurveyResponse.KeyAnswerResult = SurveyResponse.KeyAnswerResult;
- _SurveyResponse.Longitute = SurveyResponse.Longitute;
- _SurveyResponse.Latitude = SurveyResponse.Latitude;
+ var response = mapper.Map(SurveyResponse);
+ surveyResponseDbContext.Update(response);
await surveyResponseDbContext.SaveChangesAsync();
- return (true, mapper.Map(_SurveyResponse), "Successful");
+ return (true, SurveyResponse, "Successful");
}
else
{
@@ -360,13 +355,13 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
answer => answer.SurveyResponseId,
surveyResponse => surveyResponse.Id,
(answer, surveyResponse) => new
- Answer
+
{
- Id = answer.Id,
- QuestionId = answer.QuestionId,
- AnswerText = answer.AnswerText,
- Comment = answer.Comment,
- LocationId = surveyResponse.LocationId,
+ answer.Id,
+ answer.QuestionId,
+ answer.AnswerText,
+ answer.Comment,
+ surveyResponse.LocationId,
SurveyResponseId = surveyResponse.Id
});
@@ -383,41 +378,46 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
//get all the answers based on the locations
var result = from answer in surveyAnswers
from location in locations
- where answer.LocationId == location.Id
- select new Answer
+ where answer.LocationId.Equals(location.Id)
+ select new
{
- Id = answer.Id,
- QuestionId = answer.QuestionId,
- AnswerText = answer.AnswerText,
- Comment = answer.Comment,
- RegionId = location.RegionId,
- LocationId = location.Id,
- SurveyResponseId = answer.SurveyResponseId
+ answer.Id,
+ answer.QuestionId,
+ answer.AnswerText,
+ answer.Comment,
+ location.RegionId,
+ LocationId = location.Id,
+ answer.SurveyResponseId
};
+
+
//group records by answer and region
var q = from e in result
group e by (e.RegionId, e.AnswerText) into g
- select new AggregateResult
+ select new
{
- RegionId = g.Key.RegionId,
- Answers = new AggregateAnswer
+ g.Key.RegionId,
+ Answers = new
{
- Answer = g.Key.AnswerText,
+ g.Key.AnswerText,
Counter = g.Count()
}
};
-
+
//build the result
- List resultList = new List();
+
+ List resultList = new List();
foreach (Region region in regions)
{
- var answers = q.Where(x => x.RegionId.Equals(region.Id)).Select(x => x.Answers).ToList();
- resultList.Add(new AnswerData { RegionId = region.Id, Name = region.Name, Abbreviation = region.Abbreviation, Answers = answers });
+ var answers = from u in q.ToList()
+ where u.RegionId.Equals(region.Id)
+ select u.Answers;
+
+ resultList.Add(new { RegionId = region.Id, region.Name, region.Abbreviation, Answers = answers});
}
-
//return the object result
- return new ResultData { Regions = resultList };
+ return new { Regions = resultList };
}
catch (Exception ex)
{
@@ -455,7 +455,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
ans.Id,
ans.AnswerText,
ans.Comment,
- Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
+ Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
}
};
@@ -504,7 +504,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
ans.QuestionId,
ans.AnswerText,
ans.Comment,
- Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
+ Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
}
@@ -531,8 +531,6 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
var questions = await questionServiceProvider.getQuestionsAsync();
var attachments = await attachmentServiceProvider.getAttachmentsAsync();
-
-
var result = from r in surveyResonses
select new
{
@@ -553,7 +551,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
ans.QuestionId,
ans.AnswerText,
ans.Comment,
- Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
+ Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
}
};
@@ -594,7 +592,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
//get all the answers with location
var surveyAnswersLocations = from surveyAns in surveyAnswers
from location in locations
- where surveyAns.LocationId == location.Id
+ where surveyAns.LocationId.Equals(location.Id)
select new { surveyAns, location.MaintenanceCenter };
//aggreting the answers
@@ -603,9 +601,9 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
select new
{
g.Key.MaintenanceCenter,
- Answers = new AggregateAnswer
+ Answers = new
{
- Answer = g.Key.AnswerText,
+ g.Key.AnswerText,
Counter = g.Count()
}
};
@@ -628,7 +626,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
}
//Method to get Survey Responses by surveyId and LocationId
- private async Task getSurveyResponsesBySurveyIdLocationIdAsync(int surveyId, string locationId)
+ private async Task getSurveyResponsesBySurveyIdLocationIdAsync(int surveyId, int locationId)
{
try
{
@@ -661,7 +659,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
ans.Id,
ans.AnswerText,
ans.Comment,
- Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Questions }).SingleOrDefault(),
+ Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
}
};
@@ -759,8 +757,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
{
if (request != null)
{
- var response = await PostSurveyResponseAsync(new Models.SurveyResponse { SurveyId = request.SurveyId, EmployeeId = request.EmployeeId, LocationId = request.LocationId });
-
+ var response = await PostSurveyResponseAsync(new Models.SurveyResponse { SurveyId = request.SurveyId, EmployeeId = request.EmployeeId, LocationId = request.LocationId, ClientDevice = request.ClientDevice, KeyAnswerResult = request.KeyAnswerResult, Latitude = Convert.ToDouble(request.Latitude), Longitute = Convert.ToDouble(request.Longitute), CreatedDate=DateTime.Now });
if (response.IsSuccess)
{
var surveyResponse = response.SurveyResponse;
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AnswerServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AnswerServiceProvider.cs
index 921f59c..695ad3e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AnswerServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AnswerServiceProvider.cs
@@ -7,14 +7,13 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
public class AnswerServiceProvider : ServiceProviderBase, IAnswerServiceProvider
{
- public AnswerServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Answers", configuration.GetValue("EndPointSettings:AnswerUrlBase"))
+ public AnswerServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, configuration.GetValue("RessourceSettings:Answer"), configuration.GetValue("EndPointSettings:AnswerUrlBase"))
{
}
public async Task> getAnswersAsync()
{
try
{
- var url = urlBase + ressource;
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var answers = JsonConvert.DeserializeObject>(responseJsonString);
@@ -33,7 +32,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + "/api/AnswersByResponse/" + responseId;
+ url = urlBase + string.Format(configuration.GetValue("RessourceSettings:AnswerByResponse"), responseId);
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var answers = JsonConvert.DeserializeObject>(responseJsonString);
@@ -52,7 +51,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + ressource;
var requestJsonString = JsonConvert.SerializeObject(answer);
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Post, url, requestJsonString);
var answers = JsonConvert.DeserializeObject(responseJsonString);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AttachmentServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AttachmentServiceProvider.cs
index 9c45c72..120e60f 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AttachmentServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/AttachmentServiceProvider.cs
@@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
public class AttachmentServiceProvider : ServiceProviderBase, IAttachmentServiceProvider
{
- public AttachmentServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Attachments", configuration.GetValue("EndPointSettings:AttachmentUrlBase"))
+ public AttachmentServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, configuration.GetValue("RessourceSettings:Attachment"), configuration.GetValue("EndPointSettings:AttachmentUrlBase"))
{
}
@@ -14,7 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + ressource;
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var attachments = JsonConvert.DeserializeObject>(responseJsonString);
@@ -33,7 +32,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + ressource;
var requestJsonString = JsonConvert.SerializeObject(attachmentInfo);
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Post, url, requestJsonString);
var attachments = JsonConvert.DeserializeObject>(responseJsonString);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/EmployeeServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/EmployeeServiceProvider.cs
index 46288a8..8dd1352 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/EmployeeServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/EmployeeServiceProvider.cs
@@ -1,12 +1,13 @@
using DamageAssesment.Api.SurveyResponses.Interfaces;
using DamageAssesment.Api.SurveyResponses.Models;
+using Microsoft.AspNetCore.Mvc.Routing;
using Newtonsoft.Json;
namespace DamageAssesment.Api.SurveyResponses.Services
{
- public class EmployeeServiceProvider :ServiceProviderBase, IEmployeeServiceProvider
+ public class EmployeeServiceProvider : ServiceProviderBase, IEmployeeServiceProvider
{
- public EmployeeServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Employees", configuration.GetValue("EndPointSettings:EmployeeUrlBase"))
+ public EmployeeServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, configuration.GetValue("RessourceSettings:Employee"), configuration.GetValue("EndPointSettings:EmployeeUrlBase"))
{
}
@@ -14,7 +15,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + ressource;
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var employees = JsonConvert.DeserializeObject>(responseJsonString);
@@ -29,15 +29,15 @@ namespace DamageAssesment.Api.SurveyResponses.Services
}
}
- public async Task getEmployeeAsync(string employeeId)
+ public async Task getEmployeeAsync(int employeeId)
{
try
{
- var url = urlBase + "/api/Employees/" + employeeId;
+ url = urlBase + string.Format(configuration.GetValue("RessourceSettings:EmployeeById"), employeeId);
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var employee = JsonConvert.DeserializeObject(responseJsonString);
- if (employee == null )
+ if (employee == null)
return null;
else return employee;
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/LocationServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/LocationServiceProvider.cs
index 07e456b..2e3fa32 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/LocationServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/LocationServiceProvider.cs
@@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
public class LocationServiceProvider :ServiceProviderBase, ILocationServiceProvider
{
- public LocationServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Locations", configuration.GetValue("EndPointSettings:LocationUrlBase"))
+ public LocationServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, configuration.GetValue("RessourceSettings:Location"), configuration.GetValue("EndPointSettings:LocationUrlBase"))
{
}
@@ -14,7 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + ressource;
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var locations = JsonConvert.DeserializeObject>(responseJsonString);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/QuestionServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/QuestionServiceProvider.cs
index 6099141..138011f 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/QuestionServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/QuestionServiceProvider.cs
@@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
public class QuestionServiceProvider : ServiceProviderBase, IQuestionServiceProvider
{
- public QuestionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Questions", configuration.GetValue("EndPointSettings:QuestionUrlBase"))
+ public QuestionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, configuration.GetValue("RessourceSettings:Question"), configuration.GetValue("EndPointSettings:QuestionUrlBase"))
{
}
@@ -14,7 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + ressource;
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var questions = JsonConvert.DeserializeObject>(responseJsonString);
@@ -33,7 +32,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + "/api/GetSurveyQuestions/" + surveyId;
+ url = urlBase + string.Format(configuration.GetValue("RessourceSettings:SurveyQuestion"), surveyId);
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var questions = JsonConvert.DeserializeObject>(responseJsonString);
@@ -53,7 +52,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + "/api/Questions/" + questionId;
+ url = urlBase + string.Format(configuration.GetValue("RessourceSettings:QuestionById"), questionId);
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var question = JsonConvert.DeserializeObject(responseJsonString);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/RegionServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/RegionServiceProvider.cs
index f31a1e1..091512e 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/RegionServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/RegionServiceProvider.cs
@@ -6,14 +6,13 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
public class RegionServiceProvider : ServiceProviderBase, IRegionServiceProvider
{
- public RegionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Regions", configuration.GetValue("EndPointSettings:LocationUrlBase"))
+ public RegionServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, configuration.GetValue("RessourceSettings:Region"), configuration.GetValue("EndPointSettings:LocationUrlBase"))
{
}
public async Task> getRegionsAsync()
{
try
{
- var url = urlBase + ressource;
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var regions = JsonConvert.DeserializeObject>(responseJsonString);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/ServiceProviderBase.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/ServiceProviderBase.cs
index 487975b..af1aa65 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/ServiceProviderBase.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/ServiceProviderBase.cs
@@ -9,6 +9,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
protected readonly ILogger logger;
protected string ressource;
protected string urlBase;
+ protected string url;
public ServiceProviderBase(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger, string ressource, string urlBase)
@@ -18,6 +19,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
this.logger = logger;
this.ressource = ressource;
this.urlBase = urlBase;
+ url = urlBase + ressource;
}
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/SurveyServiceProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/SurveyServiceProvider.cs
index 616afb2..c9df4db 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/SurveyServiceProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/Services/SurveyServiceProvider.cs
@@ -6,7 +6,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
public class SurveyServiceProvider :ServiceProviderBase, ISurveyServiceProvider
{
- public SurveyServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, "/api/Surveys", configuration.GetValue("EndPointSettings:SurveyUrlBase"))
+ public SurveyServiceProvider(IConfiguration configuration, IHttpUtil httpUtil, ILogger logger) : base(configuration, httpUtil, logger, configuration.GetValue("RessourceSettings:Survey"), configuration.GetValue("EndPointSettings:SurveyUrlBase"))
{
}
@@ -14,8 +14,6 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
-
- var url = urlBase + ressource;
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var surveys = JsonConvert.DeserializeObject>(responseJsonString);
@@ -34,7 +32,7 @@ namespace DamageAssesment.Api.SurveyResponses.Services
{
try
{
- var url = urlBase + ressource + "/" + surveyId;
+ url = urlBase + string.Format(configuration.GetValue("RessourceSettings:SurveyById"), surveyId);
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null);
var survey = JsonConvert.DeserializeObject(responseJsonString);
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Development.json b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Development.json
index 0c208ae..06d7caa 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Development.json
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Development.json
@@ -3,6 +3,30 @@
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
+ },
+ "EndPointSettings": {
+ "AnswerUrlBase": "http://localhost:5200",
+ "LocationUrlBase": "http://localhost:5213",
+ "RegionUrlBase": "http://localhost:5211",
+ "QuestionUrlBase": "http://localhost:5133",
+ "EmployeeUrlBase": "http://localhost:5135",
+ "AttachmentUrlBase": "http://localhost:5243",
+ "SurveyUrlBase": "http://localhost:5009"
+ },
+
+ "RessourceSettings": {
+ "Employee": "/Employees",
+ "EmployeeById": "/Employees/{0}",
+ "Question": "/Questions",
+ "QuestionById": "/Questions/{0}",
+ "SurveyQuestion": "/Questions/BySurvey/{0}",
+ "Survey": "/Surveys",
+ "SurveyById": "/Surveys/{0}",
+ "Attachment": "/Attachments",
+ "Answer": "/Answers",
+ "AnswerByResponse": "/Answers/ByResponse/{0}",
+ "Location": "/Locations",
+ "Region": "/Regions"
}
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Production.json b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Production.json
new file mode 100644
index 0000000..ba719e5
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Production.json
@@ -0,0 +1,5 @@
+{
+ "ConnectionStrings": {
+ "DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;MultipleActiveResultSets=true"
+ }
+}
\ No newline at end of file
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Test.json b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Test.json
new file mode 100644
index 0000000..ba719e5
--- /dev/null
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.Test.json
@@ -0,0 +1,5 @@
+{
+ "ConnectionStrings": {
+ "DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;MultipleActiveResultSets=true"
+ }
+}
\ No newline at end of file
diff --git a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.json b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.json
index 2d6dfe4..d7b64fc 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.json
+++ b/DamageAssesmentApi/DamageAssesment.Api.SurveyResponses/appsettings.json
@@ -14,6 +14,20 @@
"EmployeeUrlBase": "http://localhost:5135",
"AttachmentUrlBase": "http://localhost:5243",
"SurveyUrlBase": "http://localhost:5009"
+ },
+ "RessourceSettings": {
+ "Employee": "/Employees",
+ "EmployeeById": "/Employees/{0}",
+ "Question": "/Questions",
+ "QuestionById": "/Questions/{0}",
+ "SurveyQuestion": "/Questions/BySurvey/{0}",
+ "Survey": "/Surveys",
+ "SurveyById": "/Surveys/{0}",
+ "Attachment": "/Attachments",
+ "Answer": "/Answers",
+ "AnswerByResponse": "/Answers/ByResponse/{0}",
+ "Location": "/Locations",
+ "Region": "/Regions"
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
index f79158b..25f5405 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Models/Survey.cs
@@ -9,7 +9,6 @@ namespace DamageAssesment.Api.Surveys.Models
public class Survey : BaseSurvey
{
public IEnumerable Titles { get; set; }
-
}
public class BaseSurvey
{
diff --git a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
index f843216..df04662 100644
--- a/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
+++ b/DamageAssesmentApi/DamageAssesment.Api.Surveys/Providers/SurveysProvider.cs
@@ -184,17 +184,15 @@ namespace DamageAssesment.Api.Surveys.Providers
{
if (survey != null)
{
- var _survey = await surveyDbContext.Surveys.Where(s => s.Id == Id).SingleOrDefaultAsync();
+ var _survey = await surveyDbContext.Surveys.AsNoTracking().Where(s => s.Id == Id).SingleOrDefaultAsync();
if (_survey != null)
{
var surveysTranslation = await surveyDbContext.SurveysTranslation.Where(s => s.SurveyId == Id).ToListAsync();
surveyDbContext.SurveysTranslation.RemoveRange(surveysTranslation);
await surveyDbContext.SaveChangesAsync();
-
- _survey.IsEnabled = survey.IsEnabled;
- _survey.StartDate = survey.StartDate;
- _survey.EndDate = survey.EndDate;
+ _survey = mapper.Map(survey);
+ surveyDbContext.Surveys.Update(_survey);
await surveyDbContext.SaveChangesAsync();
List listSurveyTranslation = new List();
diff --git a/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/MockData.cs b/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/MockData.cs
index d70772d..5be421f 100644
--- a/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/MockData.cs
+++ b/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/MockData.cs
@@ -24,7 +24,7 @@ namespace DamageAssesment.Api.SurveyResponses.Test
public static async Task 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 };
}
}
}
diff --git a/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/SurveyResponsesServiceTest.cs b/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/SurveyResponsesServiceTest.cs
index 182ec5c..47685a5 100644
--- a/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/SurveyResponsesServiceTest.cs
+++ b/DamageAssesmentApi/DamageAssesment.SurveyResponses.Test/SurveyResponsesServiceTest.cs
@@ -68,9 +68,9 @@ namespace DamageAssesment.SurveyResponses.Test
{
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
var mockResponse = await MockData.getOkResponse();
- mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, "Loc1")).ReturnsAsync(mockResponse);
+ mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1)).ReturnsAsync(mockResponse);
var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
- var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, "Loc1");
+ var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1);
Assert.Equal(200, result.StatusCode);
}
@@ -78,9 +78,9 @@ namespace DamageAssesment.SurveyResponses.Test
public async Task GetSurveyResponsesBySurveyLocationAsync_ShouldReturnStatusCode204()
{
var mockResponse = await MockData.getResponse();
- mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, "Loc1")).ReturnsAsync(mockResponse);
+ mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1)).ReturnsAsync(mockResponse);
var surveyResponseProvider = new SurveyResponsesController(mockSurveyResponseService.Object);
- var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, "Lo1");
+ var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1);
Assert.Equal(204, result.StatusCode);
}