Example #1
0
        public IDocument GetDocument(IExecutionContext context, IDocument sourceDocument,
                                     IEnumerable <KeyValuePair <string, object> > items)
        {
            CustomDocument customDocument = (CustomDocument)sourceDocument;
            IDocument      document       = _documentFactory.GetDocument(context, customDocument?.Document, items);

            return(GetCustomDocument(customDocument, document));
        }
Example #2
0
        public IDocument GetDocument(IExecutionContext context, IDocument sourceDocument, Stream stream,
                                     IEnumerable <KeyValuePair <string, object> > items = null, bool disposeStream = true)
        {
            CustomDocument customDocument = (CustomDocument)sourceDocument;
            IDocument      document       = _documentFactory.GetDocument(context, customDocument?.Document, stream, items, disposeStream);

            return(GetCustomDocument(customDocument, document));
        }
Example #3
0
        private IDocument GetCustomDocument(CustomDocument customDocument, IDocument document)
        {
            CustomDocument newCustomDocument = customDocument == null
                ? Activator.CreateInstance <T>()
                : customDocument.Clone();

            if (newCustomDocument == null || newCustomDocument == customDocument)
            {
                throw new Exception("Custom document type must return new instance from Clone method");
            }
            newCustomDocument.Document = document;
            return(newCustomDocument);
        }