public async Task ProduceReportsAsync(IEnumerable <ReportDataModel> reportData, INcsJobContextMessage ncsJobContextMessage, CancellationToken cancellationToken) { var reportOutputFileNames = new List <string>(); foreach (var report in _ncsReports) { var reportsGenerated = await report.GenerateReport(reportData, ncsJobContextMessage, cancellationToken); reportOutputFileNames.AddRange(reportsGenerated); } var zipName = _filenameService.GetZipName(ncsJobContextMessage.Ukprn, ncsJobContextMessage.JobId, ReportConstants.DctZipName); await _zipService.CreateZipAsync(zipName, reportOutputFileNames, ncsJobContextMessage.DctContainer, cancellationToken); await CopyZipToDss(zipName, ncsJobContextMessage, cancellationToken); }