private Document MergeFieldsInDocument(CertificateDataResponse certificateData, MemoryStream documentTemplateStream) { var document = new Document(); _aggregateLogger.LogInfo("load Document from Stream ..."); document.LoadFromStream(documentTemplateStream, FileFormat.Docx); _aggregateLogger.LogInfo($"Document Length = {document.Count}"); _aggregateLogger.LogInfo($"Document Template Stream = {documentTemplateStream.Length}"); document.Replace("[Addressee Name]", string.IsNullOrEmpty(certificateData.ContactName) ? "" : certificateData.ContactName, false, true); document.Replace("[Department]", string.IsNullOrEmpty(certificateData.Department) ? "" : certificateData.Department, false, true); document.Replace("[Address Line 1]", string.IsNullOrEmpty(certificateData.ContactAddLine1) ? "" : certificateData.ContactAddLine1, false, true); document.Replace("[Address Line 2]", string.IsNullOrEmpty(certificateData.ContactAddLine2) ? "" : certificateData.ContactAddLine2, false, true); document.Replace("[Address Line 3]", string.IsNullOrEmpty(certificateData.ContactAddLine3) ? "" : certificateData.ContactAddLine3, false, true); document.Replace("[Address Line 4]", string.IsNullOrEmpty(certificateData.ContactAddLine4) ? "" : certificateData.ContactAddLine4, false, true); document.Replace("[Address Line 5]", string.IsNullOrEmpty(certificateData.ContactPostCode) ? "" : certificateData.ContactPostCode, false, true); document.Replace("[Inset employer name?]", certificateData.ContactName, false, true); return(document); }
private async Task <MemoryStream> CreateWordDocumentStream(string mergedFileName, CertificateDataResponse certificateData, MemoryStream documentTemplateStream) { _aggregateLogger.LogInfo("Merging fields in docuument ..."); var document = MergeFieldsInDocument(certificateData, documentTemplateStream); _aggregateLogger.LogInfo("Converting Document to PDF ..."); await WriteCopyOfMergedDocumentToBlob(mergedFileName, document); return(ConvertDocumentToStream(document)); }