public async Task <byte[]> GenerateTemplateAsync(Ignite.API.Common.UXO.UXO uxo) { var tempDirectory = Path.GetTempPath(); var documentDirectory = Path.Combine(tempDirectory, "IgniteDemo\\UXO"); var outputFile = Path.Combine(documentDirectory, $"{Guid.NewGuid()}.docx"); byte[] uploadedDocument = null; try { if (!Directory.Exists(documentDirectory)) { Directory.CreateDirectory(documentDirectory); } File.Copy(TemplateFile, outputFile); if (File.Exists(outputFile)) { var fieldReplacements = GetMappings(uxo); using (var wordDoc = WordprocessingDocument.Open(outputFile, true)) { var fields = wordDoc.MainDocumentPart.RootElement.Descendants <FieldCode>().ToList(); foreach (var replacement in fieldReplacements.Keys) { ReplaceMergeFieldWithText(fields, replacement, fieldReplacements[replacement]); } wordDoc.Save(); } } uploadedDocument = await UploadToBlobAsync(outputFile); } finally { if (File.Exists(outputFile)) { File.Delete(outputFile); } } return(uploadedDocument); }