public IConsumerManager Create(IConsumerConfiguration configuration, IDependencyResolver resolver) { var logHandler = resolver.Resolve <ILogHandler>(); var middlewares = configuration.MiddlewareConfiguration.Factories .Select(factory => factory(resolver)) .ToList(); var consumer = configuration.CustomFactory(new Consumer(configuration, resolver, logHandler), resolver); var consumerWorkerPool = new ConsumerWorkerPool( consumer, resolver, logHandler, new MiddlewareExecutor(middlewares), configuration.DistributionStrategyFactory); var feeder = new WorkerPoolFeeder( consumer, consumerWorkerPool, logHandler); var consumerManager = new ConsumerManager( consumer, consumerWorkerPool, feeder, logHandler); return(consumerManager); }
public IConsumerManager Create(IConsumerConfiguration configuration, IDependencyResolver resolver) { var logHandler = resolver.Resolve <ILogHandler>(); var consumer = configuration.CustomFactory(new Consumer(configuration, resolver, logHandler), resolver); var consumerWorkerPool = new ConsumerWorkerPool( consumer, resolver, new MiddlewareExecutor(configuration.MiddlewaresConfigurations), configuration, logHandler); var feeder = new WorkerPoolFeeder( consumer, consumerWorkerPool, logHandler); var consumerManager = new ConsumerManager( consumer, consumerWorkerPool, feeder, logHandler); return(consumerManager); }