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}"));
            }
        }
Пример #2
0
        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());
            }
        }