private async Task GenerateWorkBookAsync( FundingClaimsDataExtractReportModel model, string templateFileName, string dataSource, IOperationsReportServiceContext reportServiceContext, string reportFileName, CancellationToken cancellationToken) { var assembly = Assembly.GetExecutingAssembly(); string resourceName = assembly.GetManifestResourceNames().Single(str => str.EndsWith(templateFileName)); using (Stream manifestResourceStream = assembly.GetManifestResourceStream(resourceName)) { var workbook = _excelFileService.BindExcelTemplateToWorkbook(model, dataSource, manifestResourceStream); await _excelFileService.SaveWorkbookAsync(workbook, reportFileName, reportServiceContext.Container, cancellationToken); } }
public FundingClaimsDataExtractReportModel Build( CollectionDetail collectionDetail, ICollection <FundingClaimsDataExtractResultSet> fundingClaimsDataExtractResultSets, IDictionary <int, OrgModel> orgDetails, CancellationToken cancellationToken) { var model = new FundingClaimsDataExtractReportModel(); var fundingClaimsDataExtractDetails = fundingClaimsDataExtractResultSets.Select( fundingClaim => new FundingClaimsDataExtractDetail() { SubmissionId = fundingClaim.SubmissionId, CollectionPeriod = collectionDetail.CollectionCode, Ukprn = fundingClaim.Ukprn, ProviderName = orgDetails.GetValueOrDefault((int)fundingClaim.Ukprn)?.Name, UpdatedOn = fundingClaim.UpdatedOn.GetValueOrDefault().LongDateStringFormat(), Declaration = fundingClaim.Declaration, CovidDeclaration = fundingClaim.CovidDeclaration, FundingStreamPeriodCode = fundingClaim.SubmissionValueFundingStreamPeriodCode, MaximumContractValue = fundingClaim.ContractValue, DeliverableCode = fundingClaim.DeliverableCode, DeliverableDescription = fundingClaim.Description, StudentNumbers = fundingClaim.StudentNumbers, DeliveryToDate = fundingClaim.DeliveryToDate, ForecastedDelivery = fundingClaim.ForecastedDelivery, ExceptionalAdjustments = fundingClaim.ExceptionalAdjustments, TotalDelivery = fundingClaim.TotalDelivery, ContractAllocationNumber = fundingClaim.ContractAllocationNumber, Signed = fundingClaim.Signed }) .OrderBy(x => x.ProviderName) .ThenBy(x => x.CollectionPeriod) .ThenBy(x => x.SubmissionId) .ThenBy(x => x.FundingStreamPeriodCode) .ThenBy(x => x.DeliverableCode) .ToList(); model.FundingClaimsDataExtract = fundingClaimsDataExtractDetails; return(model); }