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)); }
public InputtersFlow CreateFlow(string storageName) { if (string.IsNullOrWhiteSpace(storageName)) { storageName = _defaultStorageName; const string message = "Storage name is empty, using the default value."; _logger.Info(message); GlobalMessageHandler.OutputMessage(message); } var inputtersFunc = _inputtersAsync.Select(inputterAsync => new Func <string, IEnumerable <string> >( input => TryReadThingNames(inputterAsync, input) ) ); var inputtersFlow = new InputtersFlow(inputtersFunc); _logger.Info($"Conctructed inputters pipeline for \"{storageName}\"."); return(inputtersFlow); }