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();
        }
Esempio n. 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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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();
        }