public async Task ExecuteAsync(INcsJobContextMessage ncsJobContextMessage, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); Debug.WriteLine("Entered Funding Task"); var fundingYearStartDate = CalculateFundingYearStart(ncsJobContextMessage); var dssData = await _dssDataRetrievalService.GetDataForTouchpoint(ncsJobContextMessage.TouchpointId, ncsJobContextMessage.ReportEndDate, fundingYearStartDate); if (dssData.Any()) { _logger.LogInfo($"Retrieved {dssData.Count()} records from DSS for TouchpointId {ncsJobContextMessage.TouchpointId}"); var ncsSubmission = BuildNcsSubmission(dssData, ncsJobContextMessage); var fundingValues = await _fundingService.CalculateFundingAsync(ncsSubmission, ncsJobContextMessage, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); await _persistenceService.PersistSubmissionAndFundingValuesAsync(ncsSubmission, fundingValues, ncsJobContextMessage, cancellationToken); var fileName = _filenameService.GetFilename(ncsJobContextMessage.Ukprn, ncsJobContextMessage.JobId, FileNameConstants.sourceData, ncsJobContextMessage.DssTimeStamp, OutputTypes.Json); await _storageService.StoreAsJsonAsync(dssData, fileName, ncsJobContextMessage, cancellationToken); } else { _logger.LogInfo($"0 records retrieved from DSS for TouchpointId {ncsJobContextMessage.TouchpointId}, exiting funding task"); } }
public async Task <string[]> GenerateReport(IEnumerable <ReportDataModel> data, INcsJobContextMessage ncsJobContextMessage, CancellationToken cancellationToken) { _logger.LogInfo("Generating Occupancy Report"); var fileName = _filenameService.GetFilename(ncsJobContextMessage.Ukprn, ncsJobContextMessage.JobId, ReportNameConstants.Occupancy, ncsJobContextMessage.DssTimeStamp, OutputTypes.Csv); var reportData = GetOccupancyReportModel(data, ncsJobContextMessage); var mapper = _classMapFactory.Build(ncsJobContextMessage); await _csvFileService.WriteAsync(reportData, fileName, ncsJobContextMessage.DctContainer, cancellationToken, classMap : mapper); _logger.LogInfo("Occupancy Report generated"); return(new[] { fileName }); }
public async Task <string[]> GenerateReport(IEnumerable <ReportDataModel> data, INcsJobContextMessage ncsJobContextMessage, CancellationToken cancellationToken) { _logger.LogInfo("Generating Funding Summary Report"); var fileName = _filenameService.GetFilename(ncsJobContextMessage.Ukprn, ncsJobContextMessage.JobId, ReportNameConstants.FundingSummary, ncsJobContextMessage.DssTimeStamp, OutputTypes.Excel); var manifestResourceStream = _streamProviderService.GetStreamFromTemplate(ReportTemplateConstants.FundingSummaryReport); var reportData = GetReportData(data, ncsJobContextMessage); Workbook workbook = new Workbook(manifestResourceStream); PopulateWorkbook(workbook, ncsJobContextMessage, reportData, cancellationToken); await _excelService.SaveWorkbookAsync(workbook, fileName, ncsJobContextMessage.DctContainer, cancellationToken); _logger.LogInfo("Funding Summary Report generated"); return(new[] { fileName }); }