/// <inheritdoc /> /// <exception cref="InvalidOperationException"> /// XML configuration doesn't contain element for appraisers manager with specified name. /// </exception> public void BuildAppraisersManager() { XElement appraiserManagerElement = _documentParser.FindElement( _appraisersManagerParameterName ); if (appraiserManagerElement is null) { var ex = new InvalidOperationException( $"XML document hasn't value for {_appraisersManagerParameterName}." ); _logger.Error(ex, "Cannot build AppraisersManager."); throw ex; } var appraisersOutput = XDocumentParser.GetAttributeValue <bool>( appraiserManagerElement, _appraisersOutputParameterName ); _appraisersManager = new Appraisers.AppraisersManagerAsync(appraisersOutput); foreach (var element in appraiserManagerElement.Elements()) { Appraisers.AppraiserAsync crawler = _serviceBuilder.CreateAppraiser(element); _appraisersManager.Add(crawler); } }
/// <inheritdoc /> public void Reset() { _inputManager = null; _crawlersManager = null; _appraisersManager = null; _outputManager = null; }
public ShellAsync( IO.Input.InputManagerAsync inputManagerAsync, Crawlers.CrawlersManagerAsync crawlersManagerAsync, Appraisers.AppraisersManagerAsync appraisersManagerAsync, IO.Output.OutputManagerAsync outputManagerAsync, int boundedCapacity) { InputManagerAsync = inputManagerAsync.ThrowIfNull(nameof(inputManagerAsync)); CrawlersManagerAsync = crawlersManagerAsync.ThrowIfNull(nameof(crawlersManagerAsync)); AppraisersManagerAsync = appraisersManagerAsync.ThrowIfNull(nameof(appraisersManagerAsync)); OutputManagerAsync = outputManagerAsync.ThrowIfNull(nameof(outputManagerAsync)); _boundedCapacity = boundedCapacity; // Not using this parameter now. }
public ShellAsync( IO.Input.InputManagerAsync inputManagerAsync, Crawlers.CrawlersManagerAsync crawlersManagerAsync, Appraisers.AppraisersManagerAsync appraisersManagerAsync, IO.Output.OutputManagerAsync outputManagerAsync, int boundedCapacity) { InputManagerAsync = inputManagerAsync.ThrowIfNull(nameof(inputManagerAsync)); CrawlersManagerAsync = crawlersManagerAsync.ThrowIfNull(nameof(crawlersManagerAsync)); AppraisersManagerAsync = appraisersManagerAsync.ThrowIfNull(nameof(appraisersManagerAsync)); OutputManagerAsync = outputManagerAsync.ThrowIfNull(nameof(outputManagerAsync)); _boundedCapacity = boundedCapacity; _dataFlowOptions = new DataflowBlockOptions { BoundedCapacity = _boundedCapacity }; }