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));
        }
Esempio n. 2
0
        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));
        }