public StoreService() { log4net.Config.XmlConfigurator.Configure(); var logger = LogProvider.For<StoreService>(); var container = new UnityContainer(); container.RegisterInstance(typeof(ILog), LogProvider.For<StoreService>(), new ContainerControlledLifetimeManager()); container.RegisterType<IProductsDAO, ProductsDAO>(); container.RegisterType<ILastReadFeedItemDAO, LastReadFeedItemDAO>(); container.RegisterType<AddProductCommandHandler>(); container.RegisterType<ChangeProductCommandHandler>(); container.RegisterType<RemoveProductCommandHandler>(); var handlerFactory = new UnityHandlerFactory(container); var subscriberRegistry = new SubscriberRegistry { {typeof(AddProductCommand), typeof(AddProductCommandHandler)}, {typeof(ChangeProductCommand), typeof(ChangeProductCommandHandler)}, {typeof(RemoveProductCommand), typeof(RemoveProductCommandHandler)}, }; //create policies var retryPolicy = Policy .Handle<Exception>() .WaitAndRetry(new[] { TimeSpan.FromMilliseconds(50), TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(150) }); var circuitBreakerPolicy = Policy .Handle<Exception>() .CircuitBreaker(1, TimeSpan.FromMilliseconds(500)); var policyRegistry = new PolicyRegistry() { {CommandProcessor.RETRYPOLICY, retryPolicy}, {CommandProcessor.CIRCUITBREAKER, circuitBreakerPolicy} }; var commandProcessor = CommandProcessorBuilder.With() .Handlers(new HandlerConfiguration(subscriberRegistry, handlerFactory)) .Policies(policyRegistry) .Logger(logger) .NoTaskQueues() .RequestContextFactory(new InMemoryRequestContextFactory()) .Build(); _consumer = new Consumer(new LastReadFeedItemDAO(), commandProcessor, logger); }
public StoreService() { log4net.Config.XmlConfigurator.Configure(); var logger = LogProvider.For <StoreService>(); var container = new UnityContainer(); container.RegisterInstance(typeof(ILog), LogProvider.For <StoreService>(), new ContainerControlledLifetimeManager()); container.RegisterType <IProductsDAO, ProductsDAO>(); container.RegisterType <ILastReadFeedItemDAO, LastReadFeedItemDAO>(); container.RegisterType <AddProductCommandHandler>(); container.RegisterType <ChangeProductCommandHandler>(); container.RegisterType <RemoveProductCommandHandler>(); var handlerFactory = new UnityHandlerFactory(container); var subscriberRegistry = new SubscriberRegistry { { typeof(AddProductCommand), typeof(AddProductCommandHandler) }, { typeof(ChangeProductCommand), typeof(ChangeProductCommandHandler) }, { typeof(RemoveProductCommand), typeof(RemoveProductCommandHandler) }, }; //create policies var retryPolicy = Policy .Handle <Exception>() .WaitAndRetry(new[] { TimeSpan.FromMilliseconds(50), TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(150) }); var circuitBreakerPolicy = Policy .Handle <Exception>() .CircuitBreaker(1, TimeSpan.FromMilliseconds(500)); var policyRegistry = new PolicyRegistry() { { CommandProcessor.RETRYPOLICY, retryPolicy }, { CommandProcessor.CIRCUITBREAKER, circuitBreakerPolicy } }; var commandProcessor = CommandProcessorBuilder.With() .Handlers(new HandlerConfiguration(subscriberRegistry, handlerFactory)) .Policies(policyRegistry) .Logger(logger) .NoTaskQueues() .RequestContextFactory(new InMemoryRequestContextFactory()) .Build(); _consumer = new Consumer(new LastReadFeedItemDAO(), commandProcessor, logger); }