private void ProcessDocument(string docBlock, IEnumerable <DocumentSettings> settings) { try { foreach (var set in settings) { if (set.DocumentTypePatterns.All(c => Regex.Match(docBlock, c).Success)) { var document = ReportDocumentParser.Parse(docBlock, set); if (document != null) { Documents.Add(document); } } } } catch (Exception e) { Log.LogError(e, "Document processing error"); throw; } }
/// <summary> /// Parse input string into document /// </summary> /// <param name="textBlock">String block to be parsed</param> /// <param name="configuration">Instance of document settings configuration</param> /// <returns></returns> public static IReportDocument Parse(string textBlock, DocumentSettings configuration) { var parser = new ReportDocumentParser(new Logger <ReportDocumentParser>(new LoggerFactory()), textBlock, configuration); return(parser.ParseDocument()); }