public async Task Create(int batchNumber, IEnumerable <CertificateResponse> certificates) { var documentTemplateDataStream = await _documentTemplateDataStream.Get(); await CleanMergedDocumentContainer(); var certificateResponses = certificates as CertificateResponse[] ?? certificates.ToArray(); var groupedCertificates = certificateResponses.ToArray().GroupBy( x => new { x.CertificateData.ContactOrganisation, x.CertificateData.Department, x.CertificateData.ContactName, x.CertificateData.ContactPostCode }, (key, group) => new { key1 = key.ContactOrganisation, key2 = key.Department, key3 = key.ContactName, key4 = key.ContactPostCode, Result = group.ToList() }); var sequenceNumber = 0; foreach (var groupedCertificate in groupedCertificates) { sequenceNumber++; var certificate = groupedCertificate.Result[0]; var wordDocumentFileName = $"IFA-Certificate-{GetMonthYear()}-{batchNumber.ToString().PadLeft(9,'0')}-{certificate.CertificateData.ContactOrganisation}-{sequenceNumber}.docx"; _aggregateLogger.LogInfo($"Processing Certificate for Cover Letter - {certificate.CertificateReference} - {wordDocumentFileName}"); var wordStream = await CreateWordDocumentStream(wordDocumentFileName, certificate.CertificateData, documentTemplateDataStream); _aggregateLogger.LogInfo($"converted certifcate data - Contact Name = {certificate.CertificateData.ContactName}"); await _fileTransferClient.Send(wordStream, wordDocumentFileName); wordStream.Close(); } documentTemplateDataStream.Close(); }
public async Task Create() { var documentTemplateDataStream = await _documentTemplateDataStream.Get(); foreach (var certificate in _certificatesRepository.GetData()) { var uuid = Guid.NewGuid(); var fileName = $"output-{uuid}.pdf"; Console.WriteLine($"Processing Certificate for Cover Letter - {certificate.Id} - {uuid}"); var certificateData = JsonConvert.DeserializeObject <Domain.JsonData.CertificateData>(certificate.CertificateData); var pdfStream = CreatePdfStream(certificateData, documentTemplateDataStream); await _fileTransferClient.Send(pdfStream, fileName); pdfStream.Close(); } documentTemplateDataStream.Close(); }