Example #1
0
        public static bool TryMerge(this Document document, object data, out IMergeError[] errors, bool useMergeFields = false, bool keepEmptyRows = false, MergeErrorAction errorAction = MergeErrorAction.Ignore, IGeneratorFactory<IGenerator<Document, Node, Type, object, string>> generatorFactory = null)
        {
            if (useMergeFields)
            {
                var mergeProvider = new MergeFieldDocumentMergeProvider<Type, object>(
                    new MergeFieldPrefixParser<Type>("List", "If", MergeFieldPrefixParser<Type>.RegionNameFormat.EndPrefixOnly),
                    new SimpleExpressionParser(expressionParser),
                    generatorFactory ?? NullGeneratorFactory,
                    new SimpleDataProvider()
                    )
                {
                    RemoveParentParagraphOfEmptyFields = true,
                    KeepEmptyRegionRows = keepEmptyRows,
                };

                return mergeProvider.TryMerge(document, data, errorAction, out errors);
            }
            else
            {
                var mergeProvider = new DocumentTextMergeProvider<Type, object, string>(
                    "{{",
                    "}}",
                    new SimpleTokenParser(),
                    new SimpleExpressionParser(expressionParser),
                    generatorFactory ?? NullGeneratorFactory,
                    new SimpleDataProvider()
                    )
                {
                    RemoveParentParagraphOfEmptyFields = true,
                    KeepEmptyRegionRows = keepEmptyRows,
                };

                return mergeProvider.TryMerge(document, data, errorAction, out errors);
            }
        }
Example #2
0
 public static bool TryMerge(this HtmlDocument document, object source, out IMergeError[] errors)
 {
     var mergeProvider = new HtmlDocumentMergeProvider<Type, object, string>(new SimpleTokenParser(), "{{", "}}", new SimpleExpressionParser(), null, new SimpleDataProvider());
     return mergeProvider.TryMerge(document, source, MergeErrorAction.Ignore, out errors);
 }