public IEngine Build() { var pipeLineBuilder = new ProcessingPipeLineBuilder { Services = _serviceLocator }; foreach (var configure in _configures) { configure(pipeLineBuilder); } var dataProvider = _serviceLocator.GetRequiredService <IDataProvider>(); var options = _serviceLocator.GetRequiredService <IOptions <ProcessingOptions> >(); var scheduler = _serviceLocator.GetRequiredService <IScheduler>(); var logger = _serviceLocator.GetRequiredService <ILogger <ProcessingEngine> >(); var source = _serviceLocator.GetRequiredService <IApplicationListenerSource>(); var contextBuilder = new ProcessingContextBuilder() .AddServices(_serviceLocator) .AddDataHandler(pipeLineBuilder.Build()) .AddOptions(options.Value); var engine = new ProcessingEngine(scheduler, source, dataProvider, logger, contextBuilder); return(engine); }
public ProcessingEngine( IScheduler scheduler, IApplicationListenerSource source, IDataProvider dataProvider, ILogger <ProcessingEngine> logger, ProcessingContextBuilder contextBuilder) { _dataProvider = dataProvider; _scheduler = scheduler; _logger = logger; _contextBuilder = contextBuilder; _source = source; }