added excel export and removed random number

This commit is contained in:
uppuv
2023-11-01 12:42:30 -04:00
parent 499ac9248b
commit 6f10e99627
16 changed files with 360 additions and 58 deletions

View File

@ -8,10 +8,12 @@ namespace DamageAssesment.Api.Responses.Controllers
public class SurveyResponsesController : ControllerBase
{
private readonly ISurveysResponse surveyResponseProvider;
private readonly IExcelExportService excelExportService;
public SurveyResponsesController(ISurveysResponse surveyResponseProvider)
public SurveyResponsesController(ISurveysResponse surveyResponseProvider, IExcelExportService excelExportService)
{
this.surveyResponseProvider = surveyResponseProvider;
this.excelExportService = excelExportService;
}
/// <summary>
/// GET request for retrieving survey responses.
@ -57,9 +59,9 @@ namespace DamageAssesment.Api.Responses.Controllers
[Route("responses/{surveyid:int}/{locationid:int}/{employeeid:int}")]
[Route("responses/{surveyid:int}/{locationid:int}")]
[HttpGet]
public async Task<ActionResult> GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid,int? employeeid)
public async Task<ActionResult> GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid, int? employeeid)
{
var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid,employeeid ?? 0);
var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid, employeeid ?? 0);
if (result.IsSuccess)
{
return Ok(result.SurveyResponses);
@ -198,6 +200,9 @@ namespace DamageAssesment.Api.Responses.Controllers
else
return BadRequest(result.ErrorMessage);
}
/// <summary>
/// Get All active surveys .
/// </summary>
[Route("responses/surveys/active")]
[Route("responses/surveys/active/{language:alpha}")]
[Route("responses/surveys/active/{employeeid:int}")]
@ -212,6 +217,23 @@ namespace DamageAssesment.Api.Responses.Controllers
}
return NoContent();
}
/// <summary>
/// Export all survey response data based on survey id.
/// </summary>
[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]
@ -224,6 +246,10 @@ namespace DamageAssesment.Api.Responses.Controllers
// }
// return NoContent();
//}
/// <summary>
/// Get all historical surveys .
/// </summary>
[Route("responses/surveys/historic")]
[Route("responses/surveys/historic/{language:alpha}")]
[Route("responses/surveys/historic/{employeeid:int}")]