Example #1
0
        private IEnumerable <FieldResult> ProcessField(InvoiceTemplate template, Document document, InvoiceField field)
        {
            var result = extractor.Extract(field, document).ToArray();

            foreach (var aggregator in aggregators)
            {
                if (!aggregator.CanHandle(field))
                {
                    continue;
                }

                IEnumerable <FieldResult> aggregated = aggregator.Aggregate(template, field, result);
                foreach (FieldResult item in aggregated)
                {
                    yield return(item);
                }

                yield break;
            }

            foreach (var fieldResult in result)
            {
                yield return(fieldResult);
            }
        }