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