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)); }
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)); }
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); }