public async Task <IActionResult> Download() { using (var package = new ExcelPackage()) { var completeRegisterWorkSheet = package.Workbook.Worksheets.Add(CompleteRegisterWorksheetName); var registerData = await _apiClient.GetCompleteRegister(); if (registerData != null && registerData.Any()) { completeRegisterWorkSheet.Cells.LoadFromDataTable(_dataTableHelper.ToDataTable(registerData), true); } else { _logger.LogError("Unable to retrieve register data from RoATP API"); } var auditHistoryWorksheet = package.Workbook.Worksheets.Add(AuditHistoryWorksheetName); var auditHistoryData = await _apiClient.GetAuditHistory(); if (auditHistoryData != null && auditHistoryData.Any()) { auditHistoryWorksheet.Cells.LoadFromDataTable(_dataTableHelper.ToDataTable(auditHistoryData), true); } else { _logger.LogError("Unable to retrieve audit history data from RoATP API"); } return(File(package.GetAsByteArray(), "application/excel", $"{DateTime.Now.ToString("yyyyMMdd")}{ExcelFileName}")); } }
public async Task <FileContentResult> DirectDownload(Guid reportId) { _logger.LogInformation($"Standard Collation initiated"); await _apiClient.GatherAndCollateStandards(); _logger.LogInformation($"Standard Collation completed"); var reportDetails = await _apiClient.GetReportDetailsFromId(reportId); using (var package = new ExcelPackage()) { foreach (var ws in reportDetails.Worksheets.OrderBy(w => w.Order)) { var worksheetToAdd = package.Workbook.Worksheets.Add(ws.Worksheet); var data = await _apiClient.GetDataFromStoredProcedure(ws.StoredProcedure); var dataTable = _dataTableHelper.ToDataTable(data); if (dataTable.Rows.Count > 0) { worksheetToAdd.Cells.LoadFromDataTable(dataTable, true); } } return(File(package.GetAsByteArray(), "application/excel", $"{reportDetails.Name}.xlsx")); } }
public async Task <IActionResult> RoatpSummaryExcel() { _logger.LogInformation($"Received request to download complete register xlsx"); try { var resultsSummary = await _repository.GetRoatpSummary(); using (var package = new ExcelPackage()) { var worksheetToAdd = package.Workbook.Worksheets.Add("RoATP"); worksheetToAdd.Cells.LoadFromDataTable(_dataTableHelper.ToDataTable(resultsSummary), true); return(File(package.GetAsByteArray(), "application/excel", $"roatp.xlsx")); } } catch (SqlException sqlEx) { _logger.LogInformation($"Could not generate data for roatp summary due to : {sqlEx.Message}"); return(NoContent()); } }