コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: ReportController.cs プロジェクト: filar7/Ether
        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)));
        }