Exemple #1
0
        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;
 }