public AppraisersFlow CreateFlow() { var appraisersFunc = new List <Funcotype>(_appraisersAsync.Count); foreach ((Type type, IList <IAppraiserAsync> appraisersAsync) in _appraisersAsync) { foreach (IAppraiserAsync appraiserAsync in appraisersAsync) { var funcotype = new Funcotype( entityInfo => TryGetRatings(appraiserAsync, entityInfo), type ); appraisersFunc.Add(funcotype); } } var appraisersFlow = new AppraisersFlow(appraisersFunc); _logger.Info("Constructed appraisers pipeline."); return(appraisersFlow); }
private DataflowPipeline ConstructPipeline(string storageName) { // Input component work. InputtersFlow inputtersFlow = InputManagerAsync.CreateFlow(storageName); // Crawlers component work. CrawlersFlow crawlersFlow = CrawlersManagerAsync.CreateFlow(); // Appraisers component work. AppraisersFlow appraisersFlow = AppraisersManagerAsync.CreateFlow(); // Output component work. OutputtersFlow outputtersFlow = OutputManagerAsync.CreateFlow(storageName: string.Empty); // Constructing pipeline. inputtersFlow.LinkTo(crawlersFlow); crawlersFlow.LinkTo(appraisersFlow); appraisersFlow.LinkTo(outputtersFlow); return(new DataflowPipeline(inputtersFlow, outputtersFlow)); }