public void ReplacedConditionalDropdownContentControls() { var filePath = this.CurrentFolder() + "Doc.docx"; using var doc = new TemplateDocument(filePath); var json = File.ReadAllText(this.CurrentFolder() + "data.json"); var src = new VariableSource(); src.LoadDataFromJson(json); var replacer = new ConditionalDropdownControlReplacer(); replacer.ReplaceAll(doc, src); var c1 = doc.WordprocessingDocument.FindContentControl("conditional_isValid"); var c2 = doc.WordprocessingDocument.FindContentControl("conditional_isInvalid"); var c3 = doc.WordprocessingDocument.FindContentControl("conditional_isInvalid_or_isValid"); Assert.NotNull(c1); Assert.NotNull(c2); Assert.NotNull(c3); Assert.AreEqual("THIS IS VALID", c1.GetTextElement().Text); Assert.AreEqual("THIS IS VALID", c2.GetTextElement().Text); Assert.AreEqual("THIS IS VALID", c3.GetTextElement().Text); doc.WordprocessingDocument.AssertValid(); doc.SaveAs(this.CurrentFolder() + "result.docx"); doc.Close(); }
public void FindsContentControlAndReplacesSingulars() { var filePath = this.CurrentFolder() + "SingularsTestDoc.docx"; using var doc = new TemplateDocument(filePath); var json = File.ReadAllText(this.CurrentFolder() + "TemplatingsTestSingularsData.json"); var src = new VariableSource(); src.LoadDataFromJson(json); var singularReplacer = new SingularDropdownControlReplacer(); singularReplacer.ReplaceAll(doc, src); var c1 = doc.WordprocessingDocument.FindContentControl(singularReplacer.TagName + "_sellers"); var c2 = doc.WordprocessingDocument.FindContentControl(singularReplacer.TagName + "_buyers"); Assert.NotNull(c1); Assert.NotNull(c2); Assert.AreEqual("sellers are", c1.GetTextElement().Text); Assert.AreEqual("buyer", c2.GetTextElement().Text); doc.WordprocessingDocument.AssertValid(); doc.SaveAs(this.CurrentFolder() + "result.docx"); doc.Close(); }
public void ReplacedConditionalDropdownContentControls() { var filePath = this.CurrentFolder() + "Doc.docx"; using var doc = new TemplateDocument(filePath); var json = File.ReadAllText(this.CurrentFolder() + "data.json"); var src = new VariableSource(); src.LoadDataFromJson(json); var replacer = new ConditionalRemoveControlReplacer(); replacer.ReplaceAll(doc, src); doc.SaveAs(this.CurrentFolder() + "result.docx"); Assert.IsNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled1")); Assert.NotNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled2")); Assert.NotNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled3")); Assert.NotNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled1_or_enabled2")); Assert.NotNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled3_or_enabled2")); Assert.IsNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled1_and_enabled2")); Assert.NotNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled1_not_and_enabled2")); Assert.IsNull(doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_enabled2_and_enabled3_not")); doc.WordprocessingDocument.AssertValid(); doc.Close(); }
public void TestEngine() { using var doc = new TemplateDocument(this.CurrentFolder() + "Doc.docx"); var json = File.ReadAllText(this.CurrentFolder() + "data.json"); var src = new VariableSource(json); var engine = new DefaultOpenXmlTemplateEngine(); engine.ReplaceAll(doc, src); doc.SaveAs(this.CurrentFolder() + "result.docx"); var wd = doc.WordprocessingDocument; string GetText(string tagName, int elementIndex) => wd.FindContentControls(tagName).ElementAtOrDefault(elementIndex).GetTextElement().Text; Assert.AreEqual("Antoniantaz", GetText("variable_name", 0)); Assert.AreEqual("1", GetText("variable_index", 0)); Assert.AreEqual("2", GetText("variable_index", 1)); Assert.AreEqual("1", GetText("variable_index", 2)); Assert.AreEqual("2", GetText("variable_index", 3)); Assert.AreEqual(4, wd.FindContentControls("repeating_streets").Count()); Assert.AreEqual(2, wd.FindContentControls("variable_city").Count()); Assert.AreEqual(9, wd.FindContentControls("variable_name").Count()); Assert.AreEqual("Antoniantaz", GetText("variable_name", 1)); Assert.AreEqual("Antoniantaz", GetText("variable_name", 2)); Assert.AreEqual("Novigrad", GetText("variable_name", 3)); Assert.AreEqual("First street", GetText("variable_name", 4)); Assert.AreEqual("Second Street", GetText("variable_name", 5)); Assert.AreEqual("Khan", GetText("variable_name", 6)); Assert.AreEqual("Novigrad", GetText("variable_city.name", 0)); doc.WordprocessingDocument.AssertValid(); doc.Close(); }