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 ....");
        }
示例#2
0
        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();
        }
示例#3
0
        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();
        }