public override async Task GenerateReport(IReportServiceContext reportServiceContext, ZipArchive archive, CancellationToken cancellationToken) { var externalFileName = GetFilename(reportServiceContext); var fileName = GetZipFilename(reportServiceContext); _logger.LogInfo("Apps Additional Payments Start"); var ilrLearners = _ilrPeriodEndProviderService.GetILRInfoForAppsAdditionalPaymentsReportAsync(reportServiceContext.Ukprn, cancellationToken); var rulebaseApprenticeshipPriceEpisodes = _fm36ProviderService.GetApprenticeshipPriceEpisodesForAppsAdditionalPaymentsReportAsync(reportServiceContext.Ukprn, cancellationToken); var rulebaseLearningDeliveries = _fm36ProviderService.GetLearningDeliveriesForAppsAdditionalPaymentReportAsync(reportServiceContext.Ukprn, cancellationToken); var appsAdditionalPaymentDasPaymentsInfo = _dasPaymentsProviderService.GetPaymentsInfoForAppsAdditionalPaymentsReportAsync(reportServiceContext.Ukprn, cancellationToken); await Task.WhenAll(ilrLearners, rulebaseApprenticeshipPriceEpisodes, rulebaseLearningDeliveries, appsAdditionalPaymentDasPaymentsInfo); var legalNameDictionary = await _dasPaymentsProviderService.GetLegalEntityNameApprenticeshipIdDictionaryAsync(appsAdditionalPaymentDasPaymentsInfo.Result.Select(p => p.ApprenticeshipId), cancellationToken); _logger.LogInfo("Apps Additional Payments Data Provision End"); var appsAdditionalPaymentsModel = _modelBuilder.BuildModel( ilrLearners.Result, rulebaseApprenticeshipPriceEpisodes.Result, rulebaseLearningDeliveries.Result, appsAdditionalPaymentDasPaymentsInfo.Result, legalNameDictionary, reportServiceContext.Ukprn); _logger.LogInfo("Apps Additional Payments Report Creation End"); var appsAdditionalPaymentsModels = appsAdditionalPaymentsModel.ToList(); string csv = await GetCsv(appsAdditionalPaymentsModels, cancellationToken); await _streamableKeyValuePersistenceService.SaveAsync($"{externalFileName}.csv", csv, cancellationToken); await WriteZipEntry(archive, $"{fileName}.csv", csv); if (reportServiceContext.DataPersistFeatureEnabled) { Stopwatch stopWatchLog = new Stopwatch(); stopWatchLog.Start(); await _persistReportData.PersistReportDataAsync( appsAdditionalPaymentsModels, reportServiceContext.Ukprn, reportServiceContext.ReturnPeriod, TableNameConstants.AppsAdditionalPayments, reportServiceContext.ReportDataConnectionString, cancellationToken); _logger.LogDebug($"Performance-AppsAdditionalPayments logging took - {stopWatchLog.ElapsedMilliseconds} ms "); stopWatchLog.Stop(); } else { _logger.LogDebug(" Data Persist Feature is disabled."); } _logger.LogInfo("Apps Additional Payments Persistence End"); }
public async Task GenerateReport(IReportServiceContext reportServiceContext, ZipArchive archive, bool isFis, CancellationToken cancellationToken) { var jobId = reportServiceContext.JobId; var ukPrn = reportServiceContext.Ukprn; var externalFileName = GetExternalFilename(ukPrn.ToString(), jobId, reportServiceContext.SubmissionDateTimeUtc); var fileName = GetFilename(ukPrn.ToString(), jobId, reportServiceContext.SubmissionDateTimeUtc); var appsAdditionalPaymentIlrInfo = await _ilrProviderService.GetILRInfoForAppsAdditionalPaymentsReportAsync(ukPrn, cancellationToken); var appsAdditionalPaymentRulebaseInfo = await _fm36ProviderService.GetFM36DataForAppsAdditionalPaymentReportAsync(ukPrn, cancellationToken); var appsAdditionalPaymentDasPaymentsInfo = await _dasPaymentsProviderService.GetPaymentsInfoForAppsAdditionalPaymentsReportAsync(ukPrn, cancellationToken); var appsAdditionalPaymentsModel = _modelBuilder.BuildModel(appsAdditionalPaymentIlrInfo, appsAdditionalPaymentRulebaseInfo, appsAdditionalPaymentDasPaymentsInfo); string csv = await GetCsv(appsAdditionalPaymentsModel, cancellationToken); await _streamableKeyValuePersistenceService.SaveAsync($"{externalFileName}.csv", csv, cancellationToken); await WriteZipEntry(archive, $"{fileName}.csv", csv); }