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