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 TestVariableControls() { using var doc = GetDoc; var data = GetData; var src = new VariableSource(); src.LoadDataFromJson(data); var replacer = new VariableControlReplacer(); replacer.ReplaceAll(doc, src); doc.SaveAs(this.CurrentFolder() + "result.docx"); foreach (var namecc in doc.WordprocessingDocument.FindContentControls(replacer.TagName + "_" + "name")) { Assert.AreEqual("Antonio Conte", namecc.GetTextElement().Text); } Assert.AreEqual("Elm street", doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "address.street").GetTextElement().Text); Assert.AreEqual("23", doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "address.number").GetTextElement().Text); Assert.AreEqual("Novakovo", doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "address.city.name").GetTextElement().Text); Assert.AreEqual("Plovdiv", doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "address.city.province").GetTextElement().Text); var cc = doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "paragraph"); Assert.AreEqual(2, cc.Descendants <Break>().Count()); //Nested Assert.AreEqual("Elm street", doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "street").GetTextElement().Text); Assert.AreEqual("Novakovo", doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "name_city").GetTextElement().Text); Assert.AreEqual("Plovdiv", doc.WordprocessingDocument.FindContentControl(replacer.TagName + "_" + "province").GetTextElement().Text); doc.WordprocessingDocument.AssertValid(); }
public void TestRepeatingControls() { using var doc = GetDoc; var data = GetData; var src = new VariableSource(); src.LoadDataFromJson(data); var replacer = new RepeatingControlReplacer(); replacer.ReplaceAll(doc, src); doc.SaveAs(this.CurrentFolder() + "result.docx"); Assert.AreEqual(4, doc.WordprocessingDocument.ContentControls().Count(cc => cc.GetContentControlTag() != null && cc.GetContentControlTag().StartsWith("repeatingitem"))); Assert.AreEqual(5, doc.WordprocessingDocument.ContentControls().Count(cc => cc.GetContentControlTag() != null && cc.GetContentControlTag() == "repeating_nestedList")); doc.WordprocessingDocument.AssertValid(); }