public async Task Create(int batchNumber, IEnumerable <CertificateResponse> certificates) { _aggregateLogger.LogInfo("Created Excel Spreadsheet ...."); var memoryStream = new MemoryStream(); var certificateResponses = certificates as CertificateResponse[] ?? certificates.ToArray(); _certificates = certificateResponses; var uuid = Guid.NewGuid(); var fileName = $"IFA-Certificate-{GetMonthYear()}-{batchNumber.ToString().PadLeft(9, '0')}.xlsx"; using (var package = new ExcelPackage(memoryStream)) { CreateWorkBook(package); CreateWorkSheet(package, certificateResponses); package.Save(); await _fileTransferClient.Send(memoryStream, fileName); await WriteCopyOfMergedDocumentToBlob(fileName, memoryStream); memoryStream.Close(); } _aggregateLogger.LogInfo("Completed Excel Spreadsheet ...."); }
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 memoryStream = new MemoryStream(); var uuid = Guid.NewGuid(); var fileName = $"output-{uuid}.xlsx"; using (var package = new ExcelPackage(memoryStream)) { CreateWorkBook(package); CreateWorkSheet(package); package.Save(); await _fileTransferClient.Send(memoryStream, fileName); memoryStream.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(); }