public async Task <IActionResult> Index(int?collectionYear, int?period, CancellationToken cancellationToken) { var currentYearPeriod = await _periodService.ReturnPeriod(CollectionTypes.NCS, cancellationToken); if (currentYearPeriod.Year == null) { throw new Exception($"Return period {currentYearPeriod.Period} has no year."); } var model = new PeriodEndReportViewModel(); if (collectionYear != null && period != null) { model.Year = collectionYear.Value; model.Period = period.Value; } else { model.Year = currentYearPeriod.Year.Value; model.Period = currentYearPeriod.Period; } model.ReportDetails = await _periodEndService.GetPeriodEndReportsAsync(model.Year, model.Period, cancellationToken); return(View(model)); }
public async Task <IActionResult> Index(int?collectionYear, int?period, CancellationToken cancellationToken) { var currentYearPeriod = await _periodService.ReturnPeriod(CollectionTypes.ILR, cancellationToken); if (currentYearPeriod.Year == null) { throw new Exception($"Return period {currentYearPeriod.Period} has no year."); } var model = new PeriodEndReportViewModel(); if (collectionYear != null && period != null) { model.Year = collectionYear.Value; model.Period = period.Value; } else { model.Year = currentYearPeriod.Year.Value; model.Period = currentYearPeriod.Period; } var reportDetailsTask = _periodEndService.GetPeriodEndReportsAsync(model.Year, model.Period, cancellationToken); var sampleReportsTask = _periodEndService.GetSampleReportsAsync(model.Year, model.Period, cancellationToken); var llvSampleReportsTask = _periodEndService.GetLLVSampleReportsAsync(model.Year, model.Period, cancellationToken); var collectionStatsTask = _periodEndService.GetCollectionStatsAsync(model.Year, model.Period, cancellationToken); var mcaReportsTask = _periodEndService.GetMcaReportsAsync(model.Year, model.Period, cancellationToken); await Task.WhenAll(reportDetailsTask, sampleReportsTask, llvSampleReportsTask, collectionStatsTask, mcaReportsTask); model.ReportDetails = reportDetailsTask.Result; model.SampleReports = sampleReportsTask.Result; model.LLVSampleReports = llvSampleReportsTask.Result; model.CollectionStats = collectionStatsTask.Result; model.McaReports = mcaReportsTask.Result; model.SummarisationTotals = await GetSummarisationTotalsAsync(model.Year, model.Period, cancellationToken); return(View(model)); }