Пример #1
0
        public static MasterDocument BuildSimpleMasterAndDetail(out DetailDocument detail)
        {
            var master = new MasterDocument
            {
                Id   = 1,
                Name = "Chips",
                DetailPlaceHolders = new DocumentPlaceholderCollection <DetailDocument, WhatMasterNeedsToKnowAboutDetail>()
            };

            var masterData = new WhatDetailNeedsToKnowAboutMaster {
                Name = master.Name
            };

            detail = new DetailDocument
            {
                Id   = 25,
                Name = "Cheetos"
            };
            var detailData = new WhatMasterNeedsToKnowAboutDetail {
                Name = detail.Name
            };


            detail.MasterDocumentPointer =
                DocumentPlaceholder <MasterDocument, WhatDetailNeedsToKnowAboutMaster>
                .CreatePlaceholderAndUpdateReverseCollection(master.Id, masterData, master.DetailPlaceHolders, detail.Id, detailData);

            return(master);
        }
Пример #2
0
        public IDocumentBuilder Placeholder(string placeholderName, Action <IDocumentContextBuilder> options, bool preservePlaceholder = true)
        {
            var documentPlaceholders = DocumentPlaceholder.Get(Document, placeholderName);

            foreach (var documentPlaceholder in documentPlaceholders)
            {
                ClearBetweenElements(documentPlaceholder.Opening, documentPlaceholder.Closing);
            }

            SaveDocument();

            foreach (var documentPlaceholder in documentPlaceholders)
            {
                var builder = new DocxDocumentPlaceholderContextBuilder(Document, documentPlaceholders.Any() == false
                                                                                                        ? new RunProperties()
                                                                                                        : documentPlaceholder.Opening.RunProperties);
                options(builder);
                foreach (var contentElement in builder.AggregatedContent)
                {
                    documentPlaceholder.Closing.InsertBeforeSelf(contentElement.CloneElement());
                }
                if (preservePlaceholder == false)
                {
                    documentPlaceholder.Remove();
                }
            }

            SaveDocument();

            return(this);
        }
Пример #3
0
        public static PeerDocument BuildSimpleMasterAndPeer(out MasterDocument master)
        {
            master = new MasterDocument {
                Id = 7, Name = "Bill"
            };
            var peer = new PeerDocument
            {
                Id   = 100,
                Name = "Frank",
                MasterDocumentPlaceHolder = new DocumentPlaceholder <MasterDocument, WhatPeerNeedsToKnowAboutMaster>()
            };

            var peerData = new WhatMasterNeedsToKnowAboutPeer {
                Name = peer.Name
            };

            var masterData = new WhatPeerNeedsToKnowAboutMaster {
                Name = master.Name
            };


            master.PeerDocumentPlaceHolder = DocumentPlaceholder <PeerDocument, WhatMasterNeedsToKnowAboutPeer>
                                             .CreatePlaceholderAndReverse(peer.Id, peerData, peer.MasterDocumentPlaceHolder, master.Id, masterData);

            return(peer);
        }
        public void NewPlaceholderCreationCreatesItsParagraphs()
        {
            var placeholder = new DocumentPlaceholder("TEST_PH");

            Assert.NotNull(placeholder.Opening);
            Assert.Null(placeholder.Opening.Parent);
            Assert.NotNull(placeholder.Closing);
            Assert.Null(placeholder.Closing.Parent);
        }
Пример #5
0
        public void PlaceholderGettingWhichNotExistsReturnsEmpty()
        {
            using (var document = new DocxDocument(Resources.WithMainContentTag))
            {
                var placeholders = DocumentPlaceholder.Get(document.GetWordDocument(), "NON_EXISTING");

                Assert.IsEmpty(placeholders);
            }
        }
Пример #6
0
        public void NewPlaceholderCreationCreatesItsParagraphs()
        {
            var placeholder = new DocumentPlaceholder("TEST_PH");

            Assert.NotNull(placeholder.Opening);
            Assert.Null(placeholder.Opening.Parent);
            Assert.NotNull(placeholder.Closing);
            Assert.Null(placeholder.Closing.Parent);
        }
        public void ShouldBeAbleToSetValueOnDynamicData()
        {
            var placeholder = DocumentPlaceholder <PeerDocument> .CreatePlaceholder(100);

            placeholder.Data.BagData.Cool = "Cool";

            var placeholder2 = Helpers.SerializeCopyWithJSON(placeholder);

            Assert.AreEqual("Cool", placeholder2.Data.BagData.Cool);
        }
Пример #8
0
        public void ManyPlaceholdersGettingFromDocumentCorrect()
        {
            using (var document = new DocxDocument(Resources.WithManyPlaceholders))
            {
                var placeholders = DocumentPlaceholder.Get(document.GetWordDocument(), "INNER");

                Assert.NotNull(placeholders);
                Assert.AreEqual(3, placeholders.Count());
            }
        }
        public virtual IDocumentContextBuilder Placeholder(string placeholderName, Action<IDocumentContextBuilder> options)
        {
            var newPlaceholder = new DocumentPlaceholder(placeholderName);

            Aggregation.Add(newPlaceholder.Opening);

            if (options != null)
            {
                var placeholderContextBuilder = new DocxDocumentPlaceholderContextBuilder(Document, RunProperties);
                options(placeholderContextBuilder);
                Aggregation.AddRange(placeholderContextBuilder.AggregatedContent);
            }

            Aggregation.Add(newPlaceholder.Closing);

            return this;
        }
        public virtual IDocumentContextBuilder Placeholder(string placeholderName, Action<IDocumentContextBuilder> options)
        {
            var newPlaceholder = new DocumentPlaceholder(placeholderName);

            Aggregation.Add(newPlaceholder.Opening);

            if (options != null)
            {
                var placeholderContextBuilder = new DocxDocumentPlaceholderContextBuilder(Document, RunProperties);
                options(placeholderContextBuilder);
                Aggregation.AddRange(placeholderContextBuilder.AggregatedContent);
            }

            Aggregation.Add(newPlaceholder.Closing);

            return this;
        }
Пример #11
0
        public void NewPlaceholderClosingEnclosureShouldBeCorrect()
        {
            var placeholder = new DocumentPlaceholder("TEST_PLACEHOLDER");

            Assert.AreEqual("{{/TEST_PLACEHOLDER}}", placeholder.ClosingName);
        }
Пример #12
0
        public void NewPlaceholderNameShouldBeCorrect()
        {
            var placeholder = new DocumentPlaceholder("TEST_PLACEHOLDER");

            Assert.AreEqual("TEST_PLACEHOLDER", placeholder.Name);
        }
        public void NewPlaceholderOpeningEnclosureShouldBeCorrect()
        {
            var placeholder = new DocumentPlaceholder("TEST_PLACEHOLDER");

            Assert.Equal("{{TEST_PLACEHOLDER}}", placeholder.OpeningName);
        }
        public void NewPlaceholderNameShouldBeCorrect()
        {
            var placeholder = new DocumentPlaceholder("TEST_PLACEHOLDER");

            Assert.Equal("TEST_PLACEHOLDER", placeholder.Name);
        }