private FundingSummaryHeaderModel PopulateReportHeader( SourceFileModel sourceFile, IEnumerable <ILRFileDetailsModel> fileData, int ukPrn, CancellationToken cancellationToken) { var ukPrnRow = new List <string> { ukPrn.ToString(), string.Empty, string.Empty }; var contractReferenceNumberRow = new List <string> { sourceFile.ConRefNumber, string.Empty, string.Empty, "ILR File :" }; var supplementaryDataFileRow = new List <string> { sourceFile.FileName.Contains("/") ? sourceFile.FileName.Substring(sourceFile.FileName.IndexOf("/", StringComparison.Ordinal) + 1) : sourceFile.FileName, string.Empty, string.Empty, "Last ILR File Update :" }; var lastSupplementaryDataFileUpdateRow = new List <string> { sourceFile.SuppliedDate?.ToString("dd/MM/yyyy hh:mm:ss"), string.Empty, string.Empty, "File Preparation Date :" }; foreach (var model in fileData) { var preparationDate = FileNameHelper.GetPreparedDateFromILRFileName(model.FileName); var secondYear = FileNameHelper.GetSecondYearFromReportYear(model.Year); ukPrnRow.Add(string.Empty); ukPrnRow.Add($"{model.Year}/{secondYear}"); contractReferenceNumberRow.Add(model.FileName.Substring(model.FileName.Contains("/") ? model.FileName.IndexOf("/", StringComparison.Ordinal) + 1 : 0)); contractReferenceNumberRow.Add(string.Empty); supplementaryDataFileRow.Add(model.LastSubmission?.ToString("dd/MM/yyyy hh:mm:ss")); supplementaryDataFileRow.Add(string.Empty); lastSupplementaryDataFileUpdateRow.Add(preparationDate); lastSupplementaryDataFileUpdateRow.Add(string.Empty); } var header = new FundingSummaryHeaderModel { ProviderName = _referenceDataCache.GetProviderName(ukPrn, cancellationToken), Ukprn = ukPrnRow.ToArray(), ContractReferenceNumber = contractReferenceNumberRow.ToArray(), SupplementaryDataFile = supplementaryDataFileRow.ToArray(), LastSupplementaryDataFileUpdate = lastSupplementaryDataFileUpdateRow.ToArray() }; return(header); }