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