Example #1
0
        /// <summary>
        ///     Gets all the enrichers that have not been applied to a given target.
        /// </summary>
        /// <param name="targetEntityId">Gets the target entity type being enriched.</param>
        /// <returns></returns>
        protected virtual IEnumerable <IEnricher <TWhole> > GetEnrichers(string targetEntityId)
        {
            var enRepo = new EnricherLogRepository();

            var log = enRepo.Get(targetEntityId);

            foreach (var partDataFile in PartDataDir.GetFiles())
            {
                // this is the source items
                // load from sources
                var list = new List <TPart>();

                var builder = new CsvEnricherBuilder <TPart, TWhole>()
                {
                    FilePath = partDataFile.FullName
                };

                var enricher = builder.Get();

                if (!log.GetHasBeenProcessed(enricher))
                {
                    yield return(enricher);
                }
            }
        }
Example #2
0
        protected void WhenProcessingTheEnrichment()
        {
            // get list of enrichers
            var enrichers = new List <Enricher <Part, Whole> >();

            foreach (var file in Directory.GetFiles(_partDir))
            {
                var enricherBuilder = new CsvEnricherBuilder <Part, Whole>()
                {
                    FilePath = file
                };
                enrichers.Add(enricherBuilder.Get());
            }

            // get list of files to process
            var targetEnrichers = new List <EnrichmentTarget <WholeSource, Whole> >();

            foreach (var file in new DirectoryInfo(_wholeDir).GetFiles())
            {
                var repository = new FlowSnapshotRepo <FlowSnapShot <Whole> >();

                targetEnrichers.Add(new EnrichmentTarget <WholeSource, Whole>(repository)
                {
                    DataSource = file
                });
            }

            // process results
            foreach (var target in targetEnrichers)
            {
                _subject.Process(_flowBatch, enrichers, target);
            }
        }