public async Task <IActionResult> OnGetToExcelAsync(Guid id) { var report = await _repository.GetSingleAsync <ReportResult>(id); if (report == null) { TempData.WithError($"Couldn't find a report with id '{id}'"); return(Page()); } var fileName = $"{report.ReportName}_{report.DateTaken.ToString("yyyy_MM_dd_HH_mm")}.xlsx"; var data = ReportToExcelConverter.GetConverter(report.GetType()).Convert(report); return(File(data, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName)); }
public async Task <IActionResult> GenerateExcel(Guid id) { var report = await _mediator.Request <GetReportById, ReportViewModel>(new GetReportById(id)); ReportToExcelConverter excelConverter = null; // TODO: DI switch (report.ReportType) { case "PullRequestsReport": excelConverter = new PullRequestsReportToExcelConverter(); break; case "WorkitemsReporter": excelConverter = new WorkItemsReportToExcelConverter(); break; default: throw new NotSupportedException($"Report of type '{report.ReportType}' is not supported."); } return(Ok(excelConverter.Convert(report))); }