fixed survey issue in response level, and added logic for start and end
date as optional date.
This commit is contained in:
commit
dca119758a
@ -16,8 +16,8 @@ namespace DamageAssesment.Api.DocuLinks.Test
|
|||||||
{
|
{
|
||||||
var mockDocumentService = new Mock<IDoculinkProvider>();
|
var mockDocumentService = new Mock<IDoculinkProvider>();
|
||||||
var mockUploadService = new Mock<IUploadService>();
|
var mockUploadService = new Mock<IUploadService>();
|
||||||
var mockResponse = await MockData.getNoContentResponses();
|
var mockResponse = await MockData.getNoContentResponse();
|
||||||
mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms", "en", null)).ReturnsAsync(mockResponse);
|
mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms","en",null)).ReturnsAsync(mockResponse);
|
||||||
|
|
||||||
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
|
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
|
||||||
var result = (NoContentResult)await DocumentProvider.GetDocumentsAsync("", "", null);
|
var result = (NoContentResult)await DocumentProvider.GetDocumentsAsync("", "", null);
|
||||||
@ -30,7 +30,7 @@ namespace DamageAssesment.Api.DocuLinks.Test
|
|||||||
{
|
{
|
||||||
var mockDocumentService = new Mock<IDoculinkProvider>();
|
var mockDocumentService = new Mock<IDoculinkProvider>();
|
||||||
var mockUploadService = new Mock<IUploadService>();
|
var mockUploadService = new Mock<IUploadService>();
|
||||||
var mockResponse = await MockData.getNoContentResponses();
|
var mockResponse = await MockData.getNoContentResponse();
|
||||||
mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms", "en", true)).ReturnsAsync(mockResponse);
|
mockDocumentService.Setup(service => service.GetdocumentsByLinkAsync("forms", "en", true)).ReturnsAsync(mockResponse);
|
||||||
|
|
||||||
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
|
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
|
||||||
@ -83,7 +83,7 @@ namespace DamageAssesment.Api.DocuLinks.Test
|
|||||||
{
|
{
|
||||||
var mockDocumentService = new Mock<IDoculinkProvider>();
|
var mockDocumentService = new Mock<IDoculinkProvider>();
|
||||||
var mockUploadService = new Mock<IUploadService>();
|
var mockUploadService = new Mock<IUploadService>();
|
||||||
var mockResponse = await MockData.getNoContentResponses();
|
var mockResponse = await MockData.getNoContentResponse();
|
||||||
mockDocumentService.Setup(service => service.GetdocumentsByLinkTypeIdAsync(null, "en", true)).ReturnsAsync(mockResponse);
|
mockDocumentService.Setup(service => service.GetdocumentsByLinkTypeIdAsync(null, "en", true)).ReturnsAsync(mockResponse);
|
||||||
|
|
||||||
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
|
var DocumentProvider = new DoculinkController(mockDocumentService.Object, mockUploadService.Object);
|
||||||
|
@ -11,7 +11,7 @@ namespace DamageAssesment.Api.DocuLinks.Test
|
|||||||
public class MockData
|
public class MockData
|
||||||
{
|
{
|
||||||
|
|
||||||
public static async Task<(bool, List<DocuLinks.Models.ResDoculinks>, string)> getOkResponses()
|
public static async Task<(bool, List<DocuLinks.Models.ResDoculink>, string)> getOkResponses()
|
||||||
{
|
{
|
||||||
List<DocuLinks.Models.ResDoculink> list = new List<DocuLinks.Models.ResDoculink>();
|
List<DocuLinks.Models.ResDoculink> list = new List<DocuLinks.Models.ResDoculink>();
|
||||||
|
|
||||||
@ -48,8 +48,8 @@ namespace DamageAssesment.Api.DocuLinks.Test
|
|||||||
doclinksAttachments = doclinksAttachments
|
doclinksAttachments = doclinksAttachments
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
List<ResDoculinks> doculinks = list.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
|
// List<ResDoculinks> doculinks = list.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
|
||||||
return (true, doculinks, null);
|
return (true, list, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,11 +6,11 @@ namespace DamageAssesment.Api.DocuLinks.Interfaces
|
|||||||
{
|
{
|
||||||
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> GetDocumentAsync(int id, string? linktype, string? language);
|
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> GetDocumentAsync(int id, string? linktype, string? language);
|
||||||
Task<(bool IsSuccess, Models.Doculink Document, string ErrorMessage)> GetDocumentByidAsync(int id);
|
Task<(bool IsSuccess, Models.Doculink Document, string ErrorMessage)> GetDocumentByidAsync(int id);
|
||||||
// Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetDocumnetsAsync(string? language);
|
// Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetDocumnetsAsync(string? language);
|
||||||
Task<(bool IsSuccess, IEnumerable<Models.ResDoculinks> documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive);
|
Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive);
|
||||||
Task<(bool IsSuccess, IEnumerable<Models.ResDoculinks> documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive);
|
Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive);
|
||||||
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> PostDocumentAsync(Models.Doculink Document);
|
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> PostDocumentAsync(Models.Doculink Document);
|
||||||
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> UpdateDocumentAsync(int id,Models.Doculink Document);
|
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> UpdateDocumentAsync(int id, Models.Doculink Document);
|
||||||
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> DeleteDocumentAsync(int id);
|
Task<(bool IsSuccess, Models.ResDoculink Document, string ErrorMessage)> DeleteDocumentAsync(int id);
|
||||||
Task<(bool IsSuccess, int counter, string message)> GetDocumentCounter();
|
Task<(bool IsSuccess, int counter, string message)> GetDocumentCounter();
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers
|
|||||||
return MultiLanguage;
|
return MultiLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<(bool IsSuccess, IEnumerable<Models.ResDoculinks> documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive)
|
public async Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetdocumentsByLinkTypeIdAsync(int? linkTypeId, string? language, bool? isactive)
|
||||||
{
|
{
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -197,8 +197,8 @@ namespace DamageAssesment.Api.DocuLinks.Providers
|
|||||||
item.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>(
|
item.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>(
|
||||||
DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == item.Id).ToList());
|
DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == item.Id).ToList());
|
||||||
}
|
}
|
||||||
List<ResDoculinks> doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
|
// List<ResDoculinks> doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
|
||||||
return (true, doculinks, null);
|
return (true, result, null);
|
||||||
}
|
}
|
||||||
return (false, null, "Not found");
|
return (false, null, "Not found");
|
||||||
}
|
}
|
||||||
@ -209,7 +209,7 @@ namespace DamageAssesment.Api.DocuLinks.Providers
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public async Task<(bool IsSuccess, IEnumerable<Models.ResDoculinks> documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive)
|
public async Task<(bool IsSuccess, IEnumerable<Models.ResDoculink> documents, string ErrorMessage)> GetdocumentsByLinkAsync(string? linkType, string? language, bool? isactive)
|
||||||
{
|
{
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -233,8 +233,8 @@ namespace DamageAssesment.Api.DocuLinks.Providers
|
|||||||
item.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>(
|
item.doclinksAttachments = mapper.Map<List<Db.DoculinkAttachments>, List<Models.DoculinkAttachments>>(
|
||||||
DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == item.Id).ToList());
|
DocumentDbContext.DoclinksAttachments.AsNoTracking().Where(a => a.DocumentId == item.Id).ToList());
|
||||||
}
|
}
|
||||||
List<ResDoculinks> doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
|
//List<ResDoculinks> doculinks = result.GroupBy(a => a.linkTypeId).Select(a => new ResDoculinks() { linkTypeId = a.Key, doculinks = a.ToList() }).ToList();
|
||||||
return (true, doculinks, null);
|
return (true, result, null);
|
||||||
}
|
}
|
||||||
return (false, null, "Not found");
|
return (false, null, "Not found");
|
||||||
}
|
}
|
||||||
|
@ -12,9 +12,11 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
public class SurveyResponsesServiceTest
|
public class SurveyResponsesServiceTest
|
||||||
{
|
{
|
||||||
Mock<ISurveysResponse> mockSurveyResponseService;
|
Mock<ISurveysResponse> mockSurveyResponseService;
|
||||||
|
Mock<IExcelExportService> mockExcelExportService;
|
||||||
public SurveyResponsesServiceTest()
|
public SurveyResponsesServiceTest()
|
||||||
{
|
{
|
||||||
mockSurveyResponseService = new Mock<ISurveysResponse>();
|
mockSurveyResponseService = new Mock<ISurveysResponse>();
|
||||||
|
mockExcelExportService = new Mock<IExcelExportService>();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact(DisplayName = "Get Responses - Ok case")]
|
[Fact(DisplayName = "Get Responses - Ok case")]
|
||||||
@ -23,7 +25,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesAsync(1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesAsync(1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1);
|
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -32,7 +34,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesAsync(1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesAsync(1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (BadRequestObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1);
|
var result = (BadRequestObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1);
|
||||||
Assert.Equal(400, result.StatusCode);
|
Assert.Equal(400, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -43,7 +45,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse();
|
var mockResponse = await MockData.getOkResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1, 1);
|
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesAsync(1, 1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -53,7 +55,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesAsync(1, 1);
|
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesAsync(1, 1);
|
||||||
Assert.Equal(204, result.StatusCode);
|
Assert.Equal(204, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -67,7 +69,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse();
|
var mockResponse = await MockData.getOkResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1);
|
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -77,7 +79,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1);
|
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(1, 1, 1);
|
||||||
Assert.Equal(204, result.StatusCode);
|
Assert.Equal(204, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -88,7 +90,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse();
|
var mockResponse = await MockData.getOkResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetResponsesByAnswerAsync(1, 1, "Yes", 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetResponsesByAnswerAsync(1, 1, "Yes", 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes", 1);
|
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes", 1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -98,7 +100,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetResponsesByAnswerAsync(1, 1, "Yes", 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetResponsesByAnswerAsync(1, 1, "Yes", 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes", 1);
|
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponsesByAnswerAsyncAsync(1, 1, "Yes", 1);
|
||||||
Assert.Equal(204, result.StatusCode);
|
Assert.Equal(204, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -110,7 +112,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse();
|
var mockResponse = await MockData.getOkResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetAnswersByRegionAsync(1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetAnswersByRegionAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseProvider.GetAnswersByRegionAsync(1, 1);
|
var result = (OkObjectResult)await surveyResponseProvider.GetAnswersByRegionAsync(1, 1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -120,7 +122,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetAnswersByRegionAsync(1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetAnswersByRegionAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (NoContentResult)await surveyResponseProvider.GetAnswersByRegionAsync(1, 1);
|
var result = (NoContentResult)await surveyResponseProvider.GetAnswersByRegionAsync(1, 1);
|
||||||
Assert.Equal(204, result.StatusCode);
|
Assert.Equal(204, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -131,7 +133,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse();
|
var mockResponse = await MockData.getOkResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesByMaintenanceCenterAsync(1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesByMaintenanceCenterAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseProvider.GetAnswersByMaintenaceCentersync(1, 1);
|
var result = (OkObjectResult)await surveyResponseProvider.GetAnswersByMaintenaceCentersync(1, 1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -141,7 +143,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesByMaintenanceCenterAsync(1, 1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponsesByMaintenanceCenterAsync(1, 1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (NoContentResult)await surveyResponseProvider.GetAnswersByMaintenaceCentersync(1, 1);
|
var result = (NoContentResult)await surveyResponseProvider.GetAnswersByMaintenaceCentersync(1, 1);
|
||||||
Assert.Equal(204, result.StatusCode);
|
Assert.Equal(204, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -152,7 +154,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse();
|
var mockResponse = await MockData.getOkResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponseByIdAsync(1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponseByIdAsync(1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponseByIdAsync(1);
|
var result = (OkObjectResult)await surveyResponseProvider.GetSurveyResponseByIdAsync(1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -162,7 +164,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.GetSurveyResponseByIdAsync(1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.GetSurveyResponseByIdAsync(1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseProvider = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponseByIdAsync(1);
|
var result = (NoContentResult)await surveyResponseProvider.GetSurveyResponseByIdAsync(1);
|
||||||
Assert.Equal(204, result.StatusCode);
|
Assert.Equal(204, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -174,7 +176,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
||||||
mockSurveyResponseService.Setup(service => service.PostSurveyResponseAsync(mockRequestObject)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.PostSurveyResponseAsync(mockRequestObject)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseController.PostSurveysAsync(mockRequestObject);
|
var result = (OkObjectResult)await surveyResponseController.PostSurveysAsync(mockRequestObject);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -185,7 +187,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.PostSurveyResponseAsync(mockRequestObject)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.PostSurveyResponseAsync(mockRequestObject)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (BadRequestObjectResult)await surveyResponseController.PostSurveysAsync(mockRequestObject);
|
var result = (BadRequestObjectResult)await surveyResponseController.PostSurveysAsync(mockRequestObject);
|
||||||
Assert.Equal(400, result.StatusCode);
|
Assert.Equal(400, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -196,7 +198,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
||||||
mockSurveyResponseService.Setup(service => service.PutSurveyResponseAsync(1, mockRequestObject)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.PutSurveyResponseAsync(1, mockRequestObject)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseController.PutSurveyResponseAsync(1, mockRequestObject);
|
var result = (OkObjectResult)await surveyResponseController.PutSurveyResponseAsync(1, mockRequestObject);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -207,7 +209,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.PutSurveyResponseAsync(1, mockRequestObject)).ReturnsAsync(mockResponse); ;
|
mockSurveyResponseService.Setup(service => service.PutSurveyResponseAsync(1, mockRequestObject)).ReturnsAsync(mockResponse); ;
|
||||||
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (BadRequestObjectResult)await surveyResponseController.PutSurveyResponseAsync(1, mockRequestObject);
|
var result = (BadRequestObjectResult)await surveyResponseController.PutSurveyResponseAsync(1, mockRequestObject);
|
||||||
Assert.Equal(400, result.StatusCode);
|
Assert.Equal(400, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -218,7 +220,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
SurveyResponse mockRequestObject = await MockData.getSurveyResponseObject();
|
||||||
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
var mockResponse = await MockData.getOkResponse(mockRequestObject);
|
||||||
mockSurveyResponseService.Setup(service => service.DeleteSurveyResponseAsync(1)).ReturnsAsync(mockResponse);
|
mockSurveyResponseService.Setup(service => service.DeleteSurveyResponseAsync(1)).ReturnsAsync(mockResponse);
|
||||||
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (OkObjectResult)await surveyResponseController.DeleteSurveyResponseAsync(1);
|
var result = (OkObjectResult)await surveyResponseController.DeleteSurveyResponseAsync(1);
|
||||||
Assert.Equal(200, result.StatusCode);
|
Assert.Equal(200, result.StatusCode);
|
||||||
}
|
}
|
||||||
@ -228,7 +230,7 @@ namespace DamageAssesment.SurveyResponses.Test
|
|||||||
{
|
{
|
||||||
var mockResponse = await MockData.getResponse();
|
var mockResponse = await MockData.getResponse();
|
||||||
mockSurveyResponseService.Setup(service => service.DeleteSurveyResponseAsync(1)).ReturnsAsync(mockResponse); ;
|
mockSurveyResponseService.Setup(service => service.DeleteSurveyResponseAsync(1)).ReturnsAsync(mockResponse); ;
|
||||||
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object);
|
var surveyResponseController = new ResponsesController(mockSurveyResponseService.Object, mockExcelExportService.Object);
|
||||||
var result = (NotFoundResult)await surveyResponseController.DeleteSurveyResponseAsync(1);
|
var result = (NotFoundResult)await surveyResponseController.DeleteSurveyResponseAsync(1);
|
||||||
Assert.Equal(404, result.StatusCode);
|
Assert.Equal(404, result.StatusCode);
|
||||||
}
|
}
|
||||||
|
@ -9,10 +9,12 @@ namespace DamageAssesment.Api.Responses.Controllers
|
|||||||
public class ResponsesController : ControllerBase
|
public class ResponsesController : ControllerBase
|
||||||
{
|
{
|
||||||
private readonly ISurveysResponse surveyResponseProvider;
|
private readonly ISurveysResponse surveyResponseProvider;
|
||||||
|
private readonly IExcelExportService excelExportService;
|
||||||
|
|
||||||
public ResponsesController(ISurveysResponse surveyResponseProvider)
|
public ResponsesController(ISurveysResponse surveyResponseProvider, IExcelExportService excelExportService)
|
||||||
{
|
{
|
||||||
this.surveyResponseProvider = surveyResponseProvider;
|
this.surveyResponseProvider = surveyResponseProvider;
|
||||||
|
this.excelExportService = excelExportService;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// GET request for retrieving survey responses.
|
/// GET request for retrieving survey responses.
|
||||||
@ -210,6 +212,9 @@ namespace DamageAssesment.Api.Responses.Controllers
|
|||||||
else
|
else
|
||||||
return BadRequest(result.ErrorMessage);
|
return BadRequest(result.ErrorMessage);
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Get All active surveys .
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
[Authorize(Roles = "admin,survey,user,report")]
|
[Authorize(Roles = "admin,survey,user,report")]
|
||||||
[Route("responses/surveys/active")]
|
[Route("responses/surveys/active")]
|
||||||
@ -226,7 +231,40 @@ namespace DamageAssesment.Api.Responses.Controllers
|
|||||||
}
|
}
|
||||||
return NoContent();
|
return NoContent();
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Export all survey response data based on survey id.
|
||||||
|
/// </summary>
|
||||||
|
[Authorize(Roles = "admin,survey,user,report")]
|
||||||
|
[HttpGet]
|
||||||
|
[Route("responses/surveys/export/{surveyid}")]
|
||||||
|
public async Task<ActionResult> GetExcelSurveysAsync(int surveyid, string language, bool IsAdmin = false)
|
||||||
|
{
|
||||||
|
var result = await this.surveyResponseProvider.ExportSurveyResponsesAsync(surveyid, language, IsAdmin);
|
||||||
|
if (result.IsSuccess && result.surveyResponses.Count > 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
byte[] fileContents = excelExportService.ExportToExcel<object>(result.surveyResponses);
|
||||||
|
return File(fileContents, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "data.xlsx");
|
||||||
|
//return Ok(result.Surveys);
|
||||||
|
}
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
//[Route("responses/surveys/active")]
|
||||||
|
//[Route("responses/surveys/active/{language:alpha}")]
|
||||||
|
//[HttpGet]
|
||||||
|
//public async Task<ActionResult> GetActiveSurveysAsync( string? language)
|
||||||
|
//{
|
||||||
|
// var result = await this.surveyResponseProvider.GetActiveSurveysAsync(null, language);
|
||||||
|
// if (result.IsSuccess)
|
||||||
|
// {
|
||||||
|
// return Ok(result.Surveys);
|
||||||
|
// }
|
||||||
|
// return NoContent();
|
||||||
|
//}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get all historical surveys .
|
||||||
|
/// </summary>
|
||||||
[Authorize(Roles = "admin,survey,user,report")]
|
[Authorize(Roles = "admin,survey,user,report")]
|
||||||
[Route("responses/surveys/historic")]
|
[Route("responses/surveys/historic")]
|
||||||
[Route("responses/surveys/historic/{language:alpha}")]
|
[Route("responses/surveys/historic/{language:alpha}")]
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
|
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
|
||||||
|
<PackageReference Include="ClosedXML" Version="0.102.1" />
|
||||||
|
<PackageReference Include="EPPlus" Version="6.2.10" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.9" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.9" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.9">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.9">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace DamageAssesment.Api.Responses.Interfaces
|
||||||
|
{
|
||||||
|
public interface IExcelExportService
|
||||||
|
{
|
||||||
|
public byte[] ExportToExcel<T1>(List<object> responses);
|
||||||
|
}
|
||||||
|
}
|
@ -4,8 +4,9 @@ namespace DamageAssesment.Api.Responses.Interfaces
|
|||||||
{
|
{
|
||||||
public interface IQuestionServiceProvider
|
public interface IQuestionServiceProvider
|
||||||
{
|
{
|
||||||
Task<List<Question>> getQuestionsAsync(string token);
|
Task<List<Question>> getQuestionsAsync(string language, string token);
|
||||||
Task<List<SurveyQuestions>> getSurveyQuestionsAsync(int surveyId, string token);
|
Task<List<SurveyQuestions>> getSurveyQuestionsAsync(int surveyId, string token);
|
||||||
Task<Question> getQuestionsAsync(int questionId, string token);
|
Task<Question> getQuestionsAsync(int questionId, string token);
|
||||||
|
Task<List<QuestionCategory>> GetQuestionCategoriesAsync(string? language, string token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,9 @@ namespace DamageAssesment.Api.Responses.Interfaces
|
|||||||
{
|
{
|
||||||
Task<(bool IsSuccess, dynamic Answers, string ErrorMessage)> GetAnswersByRegionAsync(int surveyId, int employeeid);
|
Task<(bool IsSuccess, dynamic Answers, string ErrorMessage)> GetAnswersByRegionAsync(int surveyId, int employeeid);
|
||||||
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PostSurveyResponseAsync(Models.SurveyResponse surveyResponse);
|
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PostSurveyResponseAsync(Models.SurveyResponse surveyResponse);
|
||||||
// Task<(bool IsSuccess,dynamic surveyResponses, string ErrorMessage)> GetSurveyResponseAsync(int responseId);
|
// Task<(bool IsSuccess,dynamic surveyResponses, string ErrorMessage)> GetSurveyResponseAsync(int responseId);
|
||||||
Task<(bool IsSuccess, dynamic surveyResponses, string ErrorMessage)> GetSurveyResponsesAsync(int employeeid);
|
Task<(bool IsSuccess, dynamic surveyResponses, string ErrorMessage)> GetSurveyResponsesAsync(int employeeid);
|
||||||
|
Task<(bool IsSuccess, List<object> surveyResponses, string ErrorMessage)> ExportSurveyResponsesAsync(int surveyId, string language, bool IsAdmin);
|
||||||
Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int? employeeid, string language);
|
Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int? employeeid, string language);
|
||||||
Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int? employeeid, string language);
|
Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int? employeeid, string language);
|
||||||
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PutSurveyResponseAsync(int Id, Models.SurveyResponse surveyResponse);
|
Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PutSurveyResponseAsync(int Id, Models.SurveyResponse surveyResponse);
|
||||||
|
@ -11,6 +11,7 @@ namespace DamageAssesment.Api.Responses.Models
|
|||||||
|
|
||||||
public int? AnswerId { get; set; }
|
public int? AnswerId { get; set; }
|
||||||
public bool IsDeleted { get; set; }
|
public bool IsDeleted { get; set; }
|
||||||
|
public string FileName { get; set; }
|
||||||
|
|
||||||
public Attachment(int answerId, string uri)
|
public Attachment(int answerId, string uri)
|
||||||
{
|
{
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int RegionId { get; set; }
|
public int RegionId { get; set; }
|
||||||
|
public string LocationCode { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string MaintenanceCenter { get; set; }
|
public string MaintenanceCenter { get; set; }
|
||||||
public string SchoolType { get; set; }
|
public string SchoolType { get; set; }
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
namespace DamageAssesment.Api.Responses.Models
|
||||||
|
{
|
||||||
|
public class QuestionCategory
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string IconName { get; set; }
|
||||||
|
public string IconLibrary { get; set; }
|
||||||
|
public object Titles { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -2,13 +2,20 @@
|
|||||||
|
|
||||||
namespace DamageAssesment.Api.Responses.Models
|
namespace DamageAssesment.Api.Responses.Models
|
||||||
{
|
{
|
||||||
|
public enum SurveyStatus
|
||||||
|
{
|
||||||
|
PENDING,
|
||||||
|
ACTIVE,
|
||||||
|
INACTIVE
|
||||||
|
}
|
||||||
public class Survey
|
public class Survey
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public bool IsEnabled { get; set; }
|
public bool IsEnabled { get; set; }
|
||||||
public DateTime StartDate { get; set; }
|
public DateTime? StartDate { get; set; }
|
||||||
public DateTime EndDate { get; set; }
|
public DateTime? EndDate { get; set; }
|
||||||
public DateTime CreatedDate { get; set; }
|
public DateTime CreatedDate { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
public Dictionary<string, string> Titles { get; set; }
|
public Dictionary<string, string> Titles { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
namespace DamageAssesment.Api.Responses.Models
|
||||||
|
{
|
||||||
|
public class SurveyExport
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string SurveyQuestion { get; set; }
|
||||||
|
public string Answer { get; set; }
|
||||||
|
public string Category { get; set; }
|
||||||
|
|
||||||
|
public string School { get; set; }
|
||||||
|
public string Location { get; set; }
|
||||||
|
public string Region { get; set; }
|
||||||
|
|
||||||
|
public string MC { get; set; }
|
||||||
|
public string ResponseDate { get; set; }
|
||||||
|
public string Notes { get; set; }
|
||||||
|
|
||||||
|
public string Attachment1 { get; set; }
|
||||||
|
public string Attachment2 { get; set; }
|
||||||
|
public string Attachment3 { get; set; }
|
||||||
|
public string Attachment4 { get; set; }
|
||||||
|
public string Attachment5 { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -48,6 +48,7 @@ builder.Services.AddScoped<IQuestionServiceProvider, QuestionServiceProvider>();
|
|||||||
builder.Services.AddScoped<IEmployeeServiceProvider, EmployeeServiceProvider>();
|
builder.Services.AddScoped<IEmployeeServiceProvider, EmployeeServiceProvider>();
|
||||||
builder.Services.AddScoped<IAttachmentServiceProvider, AttachmentServiceProvider>();
|
builder.Services.AddScoped<IAttachmentServiceProvider, AttachmentServiceProvider>();
|
||||||
builder.Services.AddScoped<ISurveyServiceProvider, SurveyServiceProvider>();
|
builder.Services.AddScoped<ISurveyServiceProvider, SurveyServiceProvider>();
|
||||||
|
builder.Services.AddScoped<IExcelExportService, ExcelExportService>();
|
||||||
builder.Services.AddHttpContextAccessor();
|
builder.Services.AddHttpContextAccessor();
|
||||||
|
|
||||||
builder.Services.AddHttpClient<IHttpUtil, HttpUtil>().
|
builder.Services.AddHttpClient<IHttpUtil, HttpUtil>().
|
||||||
|
@ -0,0 +1,62 @@
|
|||||||
|
using ClosedXML.Excel;
|
||||||
|
using DamageAssesment.Api.Responses.Interfaces;
|
||||||
|
using DamageAssesment.Api.Responses.Models;
|
||||||
|
using OfficeOpenXml;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace DamageAssesment.Api.Responses.Providers
|
||||||
|
{
|
||||||
|
public class ExcelExportService: IExcelExportService
|
||||||
|
{
|
||||||
|
public byte[] ExportToExcel<T1>(List<object> responses)
|
||||||
|
{
|
||||||
|
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||||
|
using (var package = new ExcelPackage())
|
||||||
|
{
|
||||||
|
// Create the first worksheet and populate it with responses
|
||||||
|
var workSheet1 = package.Workbook.Worksheets.Add("responses");
|
||||||
|
PopulateWorksheet(workSheet1, responses);
|
||||||
|
return package.GetAsByteArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void PopulateWorksheet(ExcelWorksheet worksheet, List<object> data)
|
||||||
|
{
|
||||||
|
if (data.Count > 0)
|
||||||
|
{
|
||||||
|
var properties = data[0].GetType().GetProperties();
|
||||||
|
List<int> IsAttchments = new List<int>();
|
||||||
|
// Add column headers
|
||||||
|
for (int col = 1; col <= properties.Length; col++)
|
||||||
|
{
|
||||||
|
worksheet.Cells[1, col].Value = properties[col - 1].Name;
|
||||||
|
if(properties[col - 1].Name.ToLower().Contains("attachment"))
|
||||||
|
IsAttchments.Add(col);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add data
|
||||||
|
for (int row = 2; row <= data.Count + 1; row++)
|
||||||
|
{
|
||||||
|
for (int col = 1; col <= properties.Length; col++)
|
||||||
|
{
|
||||||
|
|
||||||
|
string value = Convert.ToString(properties[col - 1].GetValue(data[row - 2]));
|
||||||
|
if (IsAttchments.Where(a => a == col).Count() > 0 && !string.IsNullOrEmpty(value))
|
||||||
|
{
|
||||||
|
List<string> attachments = value.Split("##").ToList();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Uri linkUri = new Uri(attachments[1]);
|
||||||
|
worksheet.Cells[row, col].Value = attachments[0];
|
||||||
|
worksheet.Cells[row, col].Style.Font.UnderLine = true;
|
||||||
|
}
|
||||||
|
catch { worksheet.Cells[row, col].Value = attachments[1]; }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
worksheet.Cells[row, col].Value = value;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,11 @@
|
|||||||
using DamageAssesment.Api.Responses.Db;
|
using DamageAssesment.Api.Responses.Db;
|
||||||
using DamageAssesment.Api.Responses.Interfaces;
|
using DamageAssesment.Api.Responses.Interfaces;
|
||||||
using DamageAssesment.Api.Responses.Models;
|
using DamageAssesment.Api.Responses.Models;
|
||||||
|
using DamageAssesment.Api.Responses.Services;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace DamageAssesment.Api.Responses.Providers
|
namespace DamageAssesment.Api.Responses.Providers
|
||||||
{
|
{
|
||||||
@ -57,7 +61,6 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
// Create and save SurveyResponse records with references to existing Employee and Location records
|
// Create and save SurveyResponse records with references to existing Employee and Location records
|
||||||
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { 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 { 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 { SurveyId = 1, EmployeeId = 2, LocationId = 2, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
|
surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { SurveyId = 1, EmployeeId = 2, LocationId = 2, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now });
|
||||||
|
|
||||||
surveyResponseDbContext.SaveChanges();
|
surveyResponseDbContext.SaveChanges();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,6 +128,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
return (false, null, ex.Message);
|
return (false, null, ex.Message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int? employeeid, string language)
|
public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int? employeeid, string language)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -132,7 +136,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
||||||
//get all the survey that already taken by the employee
|
//get all the survey that already taken by the employee
|
||||||
var surveys = await surveyServiceProvider.getSurveysAsync(language, token);
|
var surveys = await surveyServiceProvider.getSurveysAsync(language, token);
|
||||||
surveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now).ToList();
|
surveys = surveys.Where(s => s.IsEnabled == true && s.Status == SurveyStatus.ACTIVE.ToString()).ToList();
|
||||||
if (employeeid == null || employeeid == 0)
|
if (employeeid == null || employeeid == 0)
|
||||||
return (true, surveys, null);
|
return (true, surveys, null);
|
||||||
List<int> listOfsurveysId = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid.Value).Select(y => y.SurveyId).ToListAsync();
|
List<int> listOfsurveysId = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid.Value).Select(y => y.SurveyId).ToListAsync();
|
||||||
@ -152,9 +156,9 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
{
|
{
|
||||||
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
||||||
|
|
||||||
var surveys = await surveyServiceProvider.getSurveysAsync(language,token);
|
var surveys = await surveyServiceProvider.getSurveysAsync(language, token);
|
||||||
// returning only historic data: end date is less than current date.
|
// returning only historic data: end date is less than current date.
|
||||||
surveys = surveys.Where(s => s.EndDate < DateTime.Now).ToList();
|
surveys = surveys.Where(s => s.Status == SurveyStatus.INACTIVE.ToString()).ToList();
|
||||||
if (employeeid == null || employeeid == 0)
|
if (employeeid == null || employeeid == 0)
|
||||||
return (true, surveys, null);
|
return (true, surveys, null);
|
||||||
var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
|
var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
|
||||||
@ -177,7 +181,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
logger?.LogInformation("Querying to get Survey object from microservice");
|
logger?.LogInformation("Querying to get Survey object from microservice");
|
||||||
var survey = await surveyServiceProvider.getSurveyAsync(surveyId,token);
|
var survey = await surveyServiceProvider.getSurveyAsync(surveyId, token);
|
||||||
|
|
||||||
if (survey != null)
|
if (survey != null)
|
||||||
{
|
{
|
||||||
@ -271,7 +275,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
{
|
{
|
||||||
logger?.LogInformation("Querying to get Survey object from microservice");
|
logger?.LogInformation("Querying to get Survey object from microservice");
|
||||||
var survey = await surveyServiceProvider.getSurveyAsync(surveyId, token);
|
var survey = await surveyServiceProvider.getSurveyAsync(surveyId, token);
|
||||||
var question = await questionServiceProvider.getQuestionsAsync(questionId,token);
|
var question = await questionServiceProvider.getQuestionsAsync(questionId, token);
|
||||||
bool IsCorrectAnswer = answer.ToLower().Equals("yes") || answer.ToLower().Equals("no") ? true : false;
|
bool IsCorrectAnswer = answer.ToLower().Equals("yes") || answer.ToLower().Equals("no") ? true : false;
|
||||||
|
|
||||||
|
|
||||||
@ -320,6 +324,26 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
return (false, null, ex.Message);
|
return (false, null, ex.Message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public async Task<(bool IsSuccess, List<object> surveyResponses, string ErrorMessage)> ExportSurveyResponsesAsync(int surveyId, string language, bool isadmin)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var responses = await getAllSurveyResponsesExcelAsync(surveyId, language, isadmin);
|
||||||
|
|
||||||
|
if (responses != null)
|
||||||
|
return (true, responses, "Request Successful.");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
responses = null;
|
||||||
|
return (true, responses, "Empty object returned");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger?.LogError(ex.ToString());
|
||||||
|
return (false, null, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PostSurveyResponseAsync(Models.SurveyResponse surveyResponse)
|
public async Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PostSurveyResponseAsync(Models.SurveyResponse surveyResponse)
|
||||||
{
|
{
|
||||||
@ -446,18 +470,18 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
var result = from answer in surveyAnswers
|
var result = from answer in surveyAnswers
|
||||||
from location in locations
|
from location in locations
|
||||||
where answer.LocationId.Equals(location.Id)
|
where answer.LocationId.Equals(location.Id)
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
answer.Id,
|
answer.Id,
|
||||||
answer.QuestionId,
|
answer.QuestionId,
|
||||||
answer.AnswerText,
|
answer.AnswerText,
|
||||||
answer.Comment,
|
answer.Comment,
|
||||||
location.RegionId,
|
location.RegionId,
|
||||||
LocationId = location.Id,
|
LocationId = location.Id,
|
||||||
answer.SurveyResponseId
|
answer.SurveyResponseId
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//group records by answer and region
|
//group records by answer and region
|
||||||
var q = from e in result
|
var q = from e in result
|
||||||
@ -465,13 +489,13 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
g.Key.RegionId,
|
g.Key.RegionId,
|
||||||
Answers = new
|
Answers = new
|
||||||
{
|
{
|
||||||
g.Key.AnswerText,
|
g.Key.AnswerText,
|
||||||
Counter = g.Count()
|
Counter = g.Count()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//build the result
|
//build the result
|
||||||
|
|
||||||
List<dynamic> resultList = new List<dynamic>();
|
List<dynamic> resultList = new List<dynamic>();
|
||||||
@ -479,9 +503,9 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
{
|
{
|
||||||
var answers = from u in q.ToList()
|
var answers = from u in q.ToList()
|
||||||
where u.RegionId.Equals(region.Id)
|
where u.RegionId.Equals(region.Id)
|
||||||
select u.Answers;
|
select u.Answers;
|
||||||
|
|
||||||
resultList.Add(new { RegionId = region.Id, region.Name, region.Abbreviation, Answers = answers});
|
resultList.Add(new { RegionId = region.Id, region.Name, region.Abbreviation, Answers = answers });
|
||||||
}
|
}
|
||||||
//return the object result
|
//return the object result
|
||||||
return new { Regions = resultList };
|
return new { Regions = resultList };
|
||||||
@ -500,7 +524,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
{
|
{
|
||||||
var employee = await employeeServiceProvider.getEmployeeAsync(surveyResponse.EmployeeId, token);
|
var employee = await employeeServiceProvider.getEmployeeAsync(surveyResponse.EmployeeId, token);
|
||||||
var answers = await answerServiceProvider.GetAnswersByResponseIdAsync(surveyResponse.Id, token);
|
var answers = await answerServiceProvider.GetAnswersByResponseIdAsync(surveyResponse.Id, token);
|
||||||
var allQuestions = await questionServiceProvider.getQuestionsAsync(token);
|
var allQuestions = await questionServiceProvider.getQuestionsAsync(null, token);
|
||||||
var questions = allQuestions.Where(s => s.SurveyId == surveyResponse.SurveyId);
|
var questions = allQuestions.Where(s => s.SurveyId == surveyResponse.SurveyId);
|
||||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
||||||
|
|
||||||
@ -541,10 +565,22 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId).ToListAsync();
|
List<Db.SurveyResponse> surveyResonses = null;
|
||||||
var employees = await employeeServiceProvider.getEmployeesAsync(token);
|
Employee employee = null;
|
||||||
|
List<Employee> employees = null;
|
||||||
|
if (employeeid == 0)
|
||||||
|
{
|
||||||
|
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId).ToListAsync();
|
||||||
|
employees = await employeeServiceProvider.getEmployeesAsync(token);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.EmployeeId == employeeid).ToListAsync();
|
||||||
|
employee = await employeeServiceProvider.getEmployeeAsync(employeeid, token);
|
||||||
|
}
|
||||||
|
|
||||||
var answers = await answerServiceProvider.getAnswersAsync(token);
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
var questions = await questionServiceProvider.getQuestionsAsync(token);
|
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
||||||
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
||||||
|
|
||||||
//var surveyQuestions = await questionServiceProvider.getSurveyQuestionsAsync(surveyId);
|
//var surveyQuestions = await questionServiceProvider.getSurveyQuestionsAsync(surveyId);
|
||||||
@ -612,7 +648,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
|
|
||||||
|
|
||||||
var answers = await answerServiceProvider.getAnswersAsync(token);
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
var questions = await questionServiceProvider.getQuestionsAsync(token);
|
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
||||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
||||||
|
|
||||||
var result = from r in surveyResonses
|
var result = from r in surveyResonses
|
||||||
@ -647,7 +683,136 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Method to get All Survey Responses for excel export
|
||||||
|
private async Task<List<object>> getAllSurveyResponsesExcelAsync(int surveyId, string language, bool isadmin)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(language)) language = "en";
|
||||||
|
List<Db.SurveyResponse> surveyResonses;
|
||||||
|
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(a => a.SurveyId == surveyId).ToListAsync();
|
||||||
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
|
var Locations = await locationServiceProvider.getLocationsAsync(token);
|
||||||
|
var regions = await regionServiceProvider.getRegionsAsync(token);
|
||||||
|
var questions = await questionServiceProvider.getQuestionsAsync(language, token);
|
||||||
|
var categories = await questionServiceProvider.GetQuestionCategoriesAsync(language, token);
|
||||||
|
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
||||||
|
List<object> questionLists = new List<object>();
|
||||||
|
var allques = from res in surveyResonses
|
||||||
|
join loc in Locations on res.LocationId equals loc.Id
|
||||||
|
join reg in regions on loc.RegionId equals reg.Id
|
||||||
|
join ans in answers on res.Id equals ans.SurveyResponseId
|
||||||
|
join q in questions on ans.QuestionId equals q.Id
|
||||||
|
join qc in categories on q.CategoryId equals qc.Id
|
||||||
|
select new
|
||||||
|
{
|
||||||
|
responseId = res.Id,
|
||||||
|
questionId = q.Id,
|
||||||
|
QuestionNumber = q.QuestionNumber,
|
||||||
|
Category = JsonSerializer.Deserialize<Dictionary<string, string>>(qc.Titles.ToString())[language],
|
||||||
|
question = q.Text[language],
|
||||||
|
answerId = ans.Id,
|
||||||
|
AnswerText = ans.AnswerText,
|
||||||
|
Comment = ans.Comment,
|
||||||
|
Location = loc.LocationCode,
|
||||||
|
school = loc.Name,
|
||||||
|
Region = reg.Name,
|
||||||
|
MC = loc.MaintenanceCenter,
|
||||||
|
ResponseDate = res.CreatedDate,
|
||||||
|
EmployeeId = res.EmployeeId,
|
||||||
|
ClientDevice = res.ClientDevice,
|
||||||
|
Attachments = attachments.Where(a => a.AnswerId == ans.Id).Select(a => a.FileName + "##" + a.URI).ToList()
|
||||||
|
};
|
||||||
|
List<object> allresoponses = new List<object>();
|
||||||
|
foreach (var item in allques)
|
||||||
|
{
|
||||||
|
|
||||||
|
List<string> ansattachments = item.Attachments.ToList();
|
||||||
|
|
||||||
|
//// Initialize the attachment dictionary
|
||||||
|
//var attachmentsobject = new Dictionary<string, string>();
|
||||||
|
//for (int i = 0; i < ansattachments.Count; i++)
|
||||||
|
//{
|
||||||
|
// attachmentsobject["Attachment"+(i+1).ToString()] = ansattachments[i];
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
string[] variables = new string[5];
|
||||||
|
for (int i = 0; i < 5; i++) // Assuming you want to assign 5 values
|
||||||
|
{
|
||||||
|
if (i < ansattachments.Count())
|
||||||
|
{
|
||||||
|
variables[i] = ansattachments[i];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
variables[i] = string.Empty; // or null, or any other default value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now, you can access the values using the variables
|
||||||
|
string att1 = variables[0], att2 = variables[1], att3 = variables[2], att4 = variables[3], att5 = variables[4];
|
||||||
|
object response;
|
||||||
|
if (isadmin)
|
||||||
|
{
|
||||||
|
response = new
|
||||||
|
{
|
||||||
|
SurveyQuestion = item.question,
|
||||||
|
Answer = item.AnswerText,
|
||||||
|
Category = item.Category,
|
||||||
|
School = item.school,
|
||||||
|
Location = item.Location,
|
||||||
|
Region = item.Region,
|
||||||
|
MC = item.MC,
|
||||||
|
ResponseDate = item.ResponseDate.ToString(),
|
||||||
|
Notes = item.Comment,
|
||||||
|
Attachment1 = att1,
|
||||||
|
Attachment2 = att2,
|
||||||
|
Attachment3 = att3,
|
||||||
|
Attachment4 = att4,
|
||||||
|
Attachment5 = att5,
|
||||||
|
User = item.EmployeeId,
|
||||||
|
DeviceType = item.ClientDevice,
|
||||||
|
Reference = item.responseId
|
||||||
|
};
|
||||||
|
// Add the attachment dictionary to the response object
|
||||||
|
// response = new { response, Attachments = attachments };
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
response = new
|
||||||
|
{
|
||||||
|
SurveyQuestion = item.question,
|
||||||
|
Answer = item.AnswerText,
|
||||||
|
Category = item.Category,
|
||||||
|
School = item.school,
|
||||||
|
Location = item.Location,
|
||||||
|
Region = item.Region,
|
||||||
|
MC = item.MC,
|
||||||
|
ResponseDate = item.ResponseDate.ToString(),
|
||||||
|
Notes = item.Comment,
|
||||||
|
Attachment1 = att1,
|
||||||
|
Attachment2 = att2,
|
||||||
|
Attachment3 = att3,
|
||||||
|
Attachment4 = att4,
|
||||||
|
Attachment5 = att5
|
||||||
|
};
|
||||||
|
|
||||||
|
// Add the attachment dictionary to the response object
|
||||||
|
// response = new { response, Attachments = attachments };
|
||||||
|
}
|
||||||
|
allresoponses.Add(response);
|
||||||
|
}
|
||||||
|
return allresoponses;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger?.LogError($"Exception Found : {ex.Message} - Ref: SurveyResponsesProvider.getSurveyResponseBySurveyIdAsync()");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Method to get Answers By Maintenance Center by surveyId
|
//Method to get Answers By Maintenance Center by surveyId
|
||||||
private async Task<dynamic> getResultsByMaintenanceCenterAsync(int surveyId, int employeeid)
|
private async Task<dynamic> getResultsByMaintenanceCenterAsync(int surveyId, int employeeid)
|
||||||
@ -693,7 +858,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
g.Key.MaintenanceCenter,
|
g.Key.MaintenanceCenter,
|
||||||
Answers = new
|
Answers = new
|
||||||
{
|
{
|
||||||
g.Key.AnswerText,
|
g.Key.AnswerText,
|
||||||
Counter = g.Count()
|
Counter = g.Count()
|
||||||
@ -744,7 +909,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
}
|
}
|
||||||
|
|
||||||
var answers = await answerServiceProvider.getAnswersAsync(token);
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
var questions = await questionServiceProvider.getQuestionsAsync(token);
|
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
||||||
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
||||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
||||||
|
|
||||||
@ -887,7 +1052,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
{
|
{
|
||||||
if (request != null)
|
if (request != null)
|
||||||
{
|
{
|
||||||
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 });
|
var response = await PostSurveyResponseAsync(new Models.SurveyResponse { SurveyId = request.SurveyId, EmployeeId = request.EmployeeId, LocationId = request.LocationId, ClientDevice = request.ClientDevice, KeyAnswerResult = request.KeyAnswerResult, Latitude = Convert.ToDouble(request.Latitude), Longitute = Convert.ToDouble(request.Longitute), CreatedDate = DateTime.Now });
|
||||||
if (response.IsSuccess)
|
if (response.IsSuccess)
|
||||||
{
|
{
|
||||||
var surveyResponse = response.SurveyResponse;
|
var surveyResponse = response.SurveyResponse;
|
||||||
|
@ -10,11 +10,13 @@ namespace DamageAssesment.Api.Responses.Services
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Question>> getQuestionsAsync(string token)
|
public async Task<List<Question>> getQuestionsAsync(string language, string token)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null,token);
|
if (!string.IsNullOrEmpty(language))
|
||||||
|
url = url + "/" + language;
|
||||||
|
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null, token);
|
||||||
var questions = JsonConvert.DeserializeObject<List<Question>>(responseJsonString);
|
var questions = JsonConvert.DeserializeObject<List<Question>>(responseJsonString);
|
||||||
|
|
||||||
if (questions == null || !questions.Any())
|
if (questions == null || !questions.Any())
|
||||||
@ -27,7 +29,27 @@ namespace DamageAssesment.Api.Responses.Services
|
|||||||
return new List<Question>();
|
return new List<Question>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public async Task<List<QuestionCategory>> GetQuestionCategoriesAsync(string? language, string token)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
url = urlBase + configuration.GetValue<string>("RessourceSettings:QuestionCategory");
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(language))
|
||||||
|
url = url + "/" + language;
|
||||||
|
var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null, token);
|
||||||
|
var questions = JsonConvert.DeserializeObject<List<QuestionCategory>>(responseJsonString);
|
||||||
|
|
||||||
|
if (questions == null || !questions.Any())
|
||||||
|
return new List<QuestionCategory>();
|
||||||
|
else return questions;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger?.LogError($"Exception Found : {ex.Message} - Ref: QuestionServiceProvider.GetQuestionCategoriesAsync()");
|
||||||
|
return new List<QuestionCategory>();
|
||||||
|
}
|
||||||
|
}
|
||||||
public async Task<List<SurveyQuestions>> getSurveyQuestionsAsync(int surveyId, string token)
|
public async Task<List<SurveyQuestions>> getSurveyQuestionsAsync(int surveyId, string token)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -37,7 +59,7 @@ namespace DamageAssesment.Api.Responses.Services
|
|||||||
var questions = JsonConvert.DeserializeObject<List<SurveyQuestions>>(responseJsonString);
|
var questions = JsonConvert.DeserializeObject<List<SurveyQuestions>>(responseJsonString);
|
||||||
|
|
||||||
if (questions == null || !questions.Any())
|
if (questions == null || !questions.Any())
|
||||||
return new List<SurveyQuestions>() ;
|
return new List<SurveyQuestions>();
|
||||||
else return questions;
|
else return questions;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
"EmployeeById": "/employees/{0}",
|
"EmployeeById": "/employees/{0}",
|
||||||
"Question": "/questions",
|
"Question": "/questions",
|
||||||
"QuestionById": "/questions/{0}",
|
"QuestionById": "/questions/{0}",
|
||||||
|
"QuestionCategory": "/questions/categories",
|
||||||
"SurveyQuestion": "/questions/bysurvey/{0}",
|
"SurveyQuestion": "/questions/bysurvey/{0}",
|
||||||
"Survey": "/surveys",
|
"Survey": "/surveys",
|
||||||
"SurveyById": "/surveys/{0}",
|
"SurveyById": "/surveys/{0}",
|
||||||
@ -45,5 +46,10 @@
|
|||||||
"AnswerByResponse": "/answers/byresponse/{0}",
|
"AnswerByResponse": "/answers/byresponse/{0}",
|
||||||
"Location": "/locations",
|
"Location": "/locations",
|
||||||
"Region": "/regions"
|
"Region": "/regions"
|
||||||
|
},
|
||||||
|
"ConnectionStrings": {
|
||||||
|
//"SurveyResponseConnection": "Server=DESKTOP-OF5DPLQ\\SQLEXPRESS;Database=da_survey_dev;Trusted_Connection=True;TrustServerCertificate=True;"
|
||||||
|
//"ResponsesConnection": "Server=DESKTOP-OF5DPLQ\\SQLEXPRESS;Database=da_survey_dev;Trusted_Connection=True;TrustServerCertificate=True;"
|
||||||
|
"ResponsesConnection": "Server=207.180.248.35;Database=da_survey_dev;User Id=sa;Password=YourStrongPassw0rd;TrustServerCertificate=True;"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,9 +13,9 @@ namespace DamageAssesment.Api.Surveys.Db
|
|||||||
|
|
||||||
public bool IsEnabled { get; set; }
|
public bool IsEnabled { get; set; }
|
||||||
|
|
||||||
public DateTime StartDate { get; set; }
|
public DateTime? StartDate { get; set; }
|
||||||
|
|
||||||
public DateTime EndDate { get; set; }
|
public DateTime? EndDate { get; set; }
|
||||||
|
|
||||||
public DateTime CreatedDate { get; set; } = DateTime.Now;
|
public DateTime CreatedDate { get; set; } = DateTime.Now;
|
||||||
/*
|
/*
|
||||||
|
@ -2,9 +2,16 @@
|
|||||||
|
|
||||||
namespace DamageAssesment.Api.Surveys.Models
|
namespace DamageAssesment.Api.Surveys.Models
|
||||||
{
|
{
|
||||||
|
public enum SurveyStatus
|
||||||
|
{
|
||||||
|
PENDING,
|
||||||
|
ACTIVE,
|
||||||
|
INACTIVE
|
||||||
|
}
|
||||||
public class MultiLanSurvey : BaseSurvey
|
public class MultiLanSurvey : BaseSurvey
|
||||||
{
|
{
|
||||||
public object Titles { get; set; }
|
public object Titles { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
}
|
}
|
||||||
public class Survey : BaseSurvey
|
public class Survey : BaseSurvey
|
||||||
{
|
{
|
||||||
@ -14,8 +21,8 @@ namespace DamageAssesment.Api.Surveys.Models
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public bool IsEnabled { get; set; }
|
public bool IsEnabled { get; set; }
|
||||||
public DateTime StartDate { get; set; }
|
public DateTime? StartDate { get; set; }
|
||||||
public DateTime EndDate { get; set; }
|
public DateTime? EndDate { get; set; }
|
||||||
public DateTime CreatedDate { get; set; }
|
public DateTime? CreatedDate { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,9 +26,9 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
{
|
{
|
||||||
if (!surveyDbContext.Surveys.Any())
|
if (!surveyDbContext.Surveys.Any())
|
||||||
{
|
{
|
||||||
var survey1 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
|
var survey1 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(10), EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
|
||||||
var survey2 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
|
var survey2 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(-10), EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now.AddDays(-10) };
|
||||||
var survey3 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now };
|
var survey3 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(-100), EndDate = DateTime.Now.AddDays(-10), CreatedDate = DateTime.Now.AddDays(-100) };
|
||||||
|
|
||||||
surveyDbContext.Surveys.Add(survey1);
|
surveyDbContext.Surveys.Add(survey1);
|
||||||
surveyDbContext.Surveys.Add(survey2);
|
surveyDbContext.Surveys.Add(survey2);
|
||||||
@ -85,7 +85,22 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
MultiLanguage = dict;
|
MultiLanguage = dict;
|
||||||
return MultiLanguage;
|
return MultiLanguage;
|
||||||
}
|
}
|
||||||
|
public string GetStatus(DateTime? StartDate,DateTime? EndDate)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (StartDate > DateTime.Now)
|
||||||
|
return SurveyStatus.PENDING.ToString();
|
||||||
|
else if (StartDate <= DateTime.Now && EndDate > DateTime.Now)
|
||||||
|
return SurveyStatus.ACTIVE.ToString();
|
||||||
|
else
|
||||||
|
return SurveyStatus.INACTIVE.ToString();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return SurveyStatus.INACTIVE.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
// Method to get surveys asynchronously with multi-language support
|
// Method to get surveys asynchronously with multi-language support
|
||||||
public async Task<(bool IsSuccess, IEnumerable<Models.MultiLanSurvey> Surveys, string ErrorMessage)> GetSurveysAsync(string language)
|
public async Task<(bool IsSuccess, IEnumerable<Models.MultiLanSurvey> Surveys, string ErrorMessage)> GetSurveysAsync(string language)
|
||||||
{
|
{
|
||||||
@ -105,6 +120,7 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
EndDate = s.EndDate,
|
EndDate = s.EndDate,
|
||||||
IsEnabled = s.IsEnabled,
|
IsEnabled = s.IsEnabled,
|
||||||
CreatedDate = s.CreatedDate,
|
CreatedDate = s.CreatedDate,
|
||||||
|
Status= GetStatus(s.StartDate,s.EndDate),
|
||||||
Titles = CreateMultiLanguageObject(GetSurveyTranslations(s.Id, null, language))
|
Titles = CreateMultiLanguageObject(GetSurveyTranslations(s.Id, null, language))
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -126,7 +142,8 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
logger?.LogInformation("Query Survey");
|
logger?.LogInformation("Query Survey");
|
||||||
var survey = await surveyDbContext.Surveys.SingleOrDefaultAsync(s => s.Id == id && s.IsEnabled == true);
|
// removed is enabled becuase we are using it in responses to get response
|
||||||
|
var survey = await surveyDbContext.Surveys.SingleOrDefaultAsync(s => s.Id == id);
|
||||||
|
|
||||||
if (survey != null)
|
if (survey != null)
|
||||||
{
|
{
|
||||||
@ -139,6 +156,7 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
EndDate = survey.EndDate,
|
EndDate = survey.EndDate,
|
||||||
IsEnabled = survey.IsEnabled,
|
IsEnabled = survey.IsEnabled,
|
||||||
CreatedDate = survey.CreatedDate,
|
CreatedDate = survey.CreatedDate,
|
||||||
|
Status = GetStatus(survey.StartDate, survey.EndDate),
|
||||||
Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, language))
|
Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, language))
|
||||||
};
|
};
|
||||||
logger?.LogInformation($"Survey Id: {id} found");
|
logger?.LogInformation($"Survey Id: {id} found");
|
||||||
@ -172,6 +190,7 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
}
|
}
|
||||||
await surveyDbContext.SaveChangesAsync();
|
await surveyDbContext.SaveChangesAsync();
|
||||||
var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(_survey);
|
var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(_survey);
|
||||||
|
result.Status = GetStatus(_survey.StartDate, _survey.EndDate);
|
||||||
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, ""));
|
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, ""));
|
||||||
return (true, result, "Successful");
|
return (true, result, "Successful");
|
||||||
}
|
}
|
||||||
@ -205,17 +224,16 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
_survey = mapper.Map<Models.Survey, Db.Survey>(survey);
|
_survey = mapper.Map<Models.Survey, Db.Survey>(survey);
|
||||||
surveyDbContext.Surveys.Update(_survey);
|
surveyDbContext.Surveys.Update(_survey);
|
||||||
await surveyDbContext.SaveChangesAsync();
|
await surveyDbContext.SaveChangesAsync();
|
||||||
|
|
||||||
List<Db.SurveyTranslation> listSurveyTranslation = new List<Db.SurveyTranslation>();
|
List<Db.SurveyTranslation> listSurveyTranslation = new List<Db.SurveyTranslation>();
|
||||||
Random random = new Random();
|
|
||||||
foreach (var title in survey.Titles)
|
foreach (var title in survey.Titles)
|
||||||
{
|
{
|
||||||
listSurveyTranslation.Add(new Db.SurveyTranslation { Id = random.Next(), SurveyId = _survey.Id, Language = title.Language, Title = title.Title });
|
listSurveyTranslation.Add(new Db.SurveyTranslation { SurveyId = _survey.Id, Language = title.Language, Title = title.Title });
|
||||||
}
|
}
|
||||||
surveyDbContext.SurveysTranslation.AddRange(listSurveyTranslation);
|
surveyDbContext.SurveysTranslation.AddRange(listSurveyTranslation);
|
||||||
await surveyDbContext.SaveChangesAsync();
|
await surveyDbContext.SaveChangesAsync();
|
||||||
|
|
||||||
var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(_survey);
|
var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(_survey);
|
||||||
|
result.Status = GetStatus(_survey.StartDate, _survey.EndDate);
|
||||||
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, ""));
|
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, ""));
|
||||||
return (true, result, "Successful");
|
return (true, result, "Successful");
|
||||||
}
|
}
|
||||||
@ -248,6 +266,7 @@ namespace DamageAssesment.Api.Surveys.Providers
|
|||||||
if (survey != null)
|
if (survey != null)
|
||||||
{
|
{
|
||||||
var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(survey);
|
var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(survey);
|
||||||
|
result.Status = GetStatus(survey.StartDate, survey.EndDate);
|
||||||
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, ""));
|
result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, ""));
|
||||||
surveyDbContext.Surveys.Remove(survey);
|
surveyDbContext.Surveys.Remove(survey);
|
||||||
await surveyDbContext.SaveChangesAsync();
|
await surveyDbContext.SaveChangesAsync();
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||||
|
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -22,6 +24,7 @@
|
|||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="7.0.10" />
|
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="7.0.10" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.18.1" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||||
|
|
||||||
|
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
|
||||||
|
WORKDIR /app
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
|
||||||
|
WORKDIR /src
|
||||||
|
COPY ["DamageAssesment.Api.UsersAccess/DamageAssesment.Api.UsersAccess.csproj", "DamageAssesment.Api.UsersAccess/"]
|
||||||
|
RUN dotnet restore "DamageAssesment.Api.UsersAccess/DamageAssesment.Api.UsersAccess.csproj"
|
||||||
|
COPY . .
|
||||||
|
WORKDIR "/src/DamageAssesment.Api.UsersAccess"
|
||||||
|
RUN dotnet build "DamageAssesment.Api.UsersAccess.csproj" -c Release -o /app/build
|
||||||
|
|
||||||
|
FROM build AS publish
|
||||||
|
RUN dotnet publish "DamageAssesment.Api.UsersAccess.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
||||||
|
|
||||||
|
FROM base AS final
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=publish /app/publish .
|
||||||
|
ENTRYPOINT ["dotnet", "DamageAssesment.Api.UsersAccess.dll"]
|
@ -1,23 +1,14 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/launchsettings.json",
|
|
||||||
"iisSettings": {
|
|
||||||
"windowsAuthentication": false,
|
|
||||||
"anonymousAuthentication": true,
|
|
||||||
"iisExpress": {
|
|
||||||
"applicationUrl": "http://localhost:28382",
|
|
||||||
"sslPort": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"DamageAssesment.Api.Users": {
|
"DamageAssesment.Api.Users": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"dotnetRunMessages": true,
|
|
||||||
"launchBrowser": true,
|
"launchBrowser": true,
|
||||||
"launchUrl": "swagger",
|
"launchUrl": "swagger",
|
||||||
"applicationUrl": "http://localhost:5027",
|
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
},
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"applicationUrl": "http://localhost:5027"
|
||||||
},
|
},
|
||||||
"IIS Express": {
|
"IIS Express": {
|
||||||
"commandName": "IISExpress",
|
"commandName": "IISExpress",
|
||||||
@ -26,6 +17,21 @@
|
|||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Docker": {
|
||||||
|
"commandName": "Docker",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
|
||||||
|
"publishAllPorts": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"$schema": "https://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:28382",
|
||||||
|
"sslPort": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
75
DamageAssesmentApi/docker-compose.acr.yml
Normal file
75
DamageAssesmentApi/docker-compose.acr.yml
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
version: '3.4'
|
||||||
|
|
||||||
|
services:
|
||||||
|
damageassesment.api.answers:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapianswers
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.Answers/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6001:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapianswers"
|
||||||
|
|
||||||
|
damageassesment.api.attachments:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapiattachments
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.Attachments/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6001:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapiattachments"
|
||||||
|
|
||||||
|
damageassesment.api.employees:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapiemployees
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.Employees/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6003:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapiemployees"
|
||||||
|
|
||||||
|
damageassesment.api.locations:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapilocations
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.Locations/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6004:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapilocations"
|
||||||
|
|
||||||
|
damageassesment.api.questions:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapiquestions
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.Questions/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6005:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapiquestions"
|
||||||
|
|
||||||
|
damageassesment.api.surveys:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapisurveys
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.Surveys/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6006:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapisurveys"
|
||||||
|
|
||||||
|
damageassesment.api.doculinks:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapidoculinks
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.DocuLinks/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6008:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapidoculinks"
|
||||||
|
|
||||||
|
damageassesment.api.responses:
|
||||||
|
image: dadeschoolscontainerregistry.azurecr.io/damageassesmentapiresponses
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.Responses/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "6007:80"
|
||||||
|
command: bash -c "docker push dadeschoolscontainerregistry.azurecr.io/damageassesmentapiresponses"
|
||||||
|
|
@ -9,6 +9,7 @@
|
|||||||
<DockerServiceName>damageassesment.api.answers</DockerServiceName>
|
<DockerServiceName>damageassesment.api.answers</DockerServiceName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<None Include="docker-compos.tst.yml" />
|
||||||
<None Include="docker-compose.sql.yml" />
|
<None Include="docker-compose.sql.yml" />
|
||||||
<None Include="docker-compose.asf.yml" />
|
<None Include="docker-compose.asf.yml" />
|
||||||
<None Include="docker-compose.override.yml">
|
<None Include="docker-compose.override.yml">
|
||||||
|
@ -55,6 +55,12 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "6007:80"
|
- "6007:80"
|
||||||
|
|
||||||
|
|
||||||
|
damageassesment.api.usersaccess:
|
||||||
|
environment:
|
||||||
|
- ASPNETCORE_ENVIRONMENT=Development
|
||||||
|
ports:
|
||||||
|
- "6008:80"
|
||||||
|
|
||||||
damageassesment.api.doculinks:
|
damageassesment.api.doculinks:
|
||||||
environment:
|
environment:
|
||||||
@ -64,3 +70,5 @@ services:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,3 +55,10 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
dockerfile: DamageAssesment.Api.Responses/Dockerfile
|
dockerfile: DamageAssesment.Api.Responses/Dockerfile
|
||||||
|
|
||||||
|
|
||||||
|
damageassesment.api.usersaccess:
|
||||||
|
image: ${DOCKER_REGISTRY-}damageassesmentapiusersaccess
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: DamageAssesment.Api.UsersAccess/Dockerfile
|
||||||
|
|
||||||
|
@ -12,7 +12,8 @@
|
|||||||
"damageassesment.api.surveyresponses": "StartDebugging",
|
"damageassesment.api.surveyresponses": "StartDebugging",
|
||||||
"damageassesment.api.surveys": "StartDebugging",
|
"damageassesment.api.surveys": "StartDebugging",
|
||||||
"damageassesment.api.doculinks": "StartDebugging",
|
"damageassesment.api.doculinks": "StartDebugging",
|
||||||
"damageassesment.api.responses": "StartDebugging"
|
"damageassesment.api.responses": "StartDebugging",
|
||||||
|
"damageassesment.api.usersaccess": "StartDebugging"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user