private PipelineContinuation InitializeContainer(ICommunicationContext arg) { var container = new TinyIoCAdapter(new TinyIoCContainer()); //HACK! For now dependencies may need to be in both containers to allow resolution container.Register<IHandleRequests<AddTaskCommand>, AddTaskCommandHandler>().AsMultiInstance(); container.Register<ITaskListRetriever, TaskListRetriever>().AsMultiInstance(); container.Register<ITasksDAO, TasksDAO>().AsMultiInstance(); var logger = LogManager.GetLogger("TaskList"); container.Register<ILog, ILog>(logger); container.Register<IAmARequestContextFactory, InMemoryRequestContextFactory>().AsMultiInstance(); MessageStoreFactory.InstallRavenDbMessageStore(container); container.Register<IAmAMessageStore<Message>, RavenMessageStore>().AsSingleton(); container.Register<IAmAMessagingGateway, RMQMessagingGateway>().AsSingleton(); container.Register<Policy>(CommandProcessor.RETRYPOLICY, GetRetryPolicy()); container.Register<Policy>(CommandProcessor.CIRCUITBREAKER, GetCircuitBreakerPolicy()); var commandProcessor = new CommandProcessorFactory(container).Create(); container.Register<IAmACommandProcessor, IAmACommandProcessor>(commandProcessor); resolver.AddDependencyInstance<IAdaptAnInversionOfControlContainer>(container, DependencyLifetime.Singleton); resolver.AddDependencyInstance<IAmARequestContextFactory>(new InMemoryRequestContextFactory(), DependencyLifetime.PerRequest); resolver.AddDependencyInstance<IAmACommandProcessor>(commandProcessor, DependencyLifetime.Singleton); resolver.AddDependency<ITaskRetriever, TaskRetriever>(DependencyLifetime.Singleton); resolver.AddDependency<ITaskListRetriever, TaskListRetriever>(DependencyLifetime.Singleton); return PipelineContinuation.Continue; }
private PipelineContinuation InitializeContainer(ICommunicationContext arg) { var container = new TinyIoCAdapter(new TinyIoCContainer()); //HACK! For now dependencies may need to be in both containers to allow resolution container.Register<IHandleRequests<AddVenueCommand>, AddVenueCommandHandler>().AsMultiInstance(); container.Register<IHandleRequests<UpdateVenueCommand>, UpdateVenueCommandHandler>().AsMultiInstance(); container.Register<IHandleRequests<DeleteVenueCommand>, DeleteVenueCommandHandler>().AsMultiInstance(); container.Register<IRepository<Venue, VenueDocument>, Repository<Venue, VenueDocument>>().AsMultiInstance(); container.Register<IAmAUnitOfWorkFactory, UnitOfWorkFactory>().AsSingleton(); resolver.AddDependencyInstance<IAdaptAnInversionOfControlContainer>(container, DependencyLifetime.Singleton); resolver.AddDependencyInstance<IAmARequestContextFactory>(new InMemoryRequestContextFactory(), DependencyLifetime.PerRequest); resolver.AddDependencyInstance<IAmAUnitOfWorkFactory>(new UnitOfWorkFactory(), DependencyLifetime.Singleton); resolver.AddDependency<IAmACommandProcessor, CommandProcessor>(DependencyLifetime.Singleton); return PipelineContinuation.Continue; }
private PipelineContinuation InitializeContainer(ICommunicationContext arg) { var container = new TinyIoCAdapter(new TinyIoCContainer()); //HACK! For now dependencies may need to be in both containers to allow resolution container.Register <IHandleRequests <AddVenueCommand>, AddVenueCommandHandler>().AsMultiInstance(); container.Register <IHandleRequests <UpdateVenueCommand>, UpdateVenueCommandHandler>().AsMultiInstance(); container.Register <IHandleRequests <DeleteVenueCommand>, DeleteVenueCommandHandler>().AsMultiInstance(); container.Register <IRepository <Venue, VenueDocument>, Repository <Venue, VenueDocument> >().AsMultiInstance(); container.Register <IAmAUnitOfWorkFactory, UnitOfWorkFactory>().AsSingleton(); resolver.AddDependencyInstance <IAdaptAnInversionOfControlContainer>(container, DependencyLifetime.Singleton); resolver.AddDependencyInstance <IAmARequestContextFactory>(new InMemoryRequestContextFactory(), DependencyLifetime.PerRequest); resolver.AddDependencyInstance <IAmAUnitOfWorkFactory>(new UnitOfWorkFactory(), DependencyLifetime.Singleton); resolver.AddDependency <IAmACommandProcessor, CommandProcessor>(DependencyLifetime.Singleton); return(PipelineContinuation.Continue); }
private PipelineContinuation InitializeContainer(ICommunicationContext arg) { var container = new TinyIoCAdapter(new TinyIoCContainer()); //HACK! For now dependencies may need to be in both containers to allow resolution container.Register<IHandleRequests<AddTaskCommand>, AddTaskCommandHandler>().AsMultiInstance(); container.Register<ITaskListRetriever, TaskListRetriever>().AsMultiInstance(); container.Register<ITasksDAO, TasksDAO>().AsMultiInstance(); container.Register<ITraceOutput, ConsoleTrace>().AsSingleton(); resolver.AddDependencyInstance<IAdaptAnInversionOfControlContainer>(container, DependencyLifetime.Singleton); resolver.AddDependencyInstance<IAmARequestContextFactory>(new InMemoryRequestContextFactory(), DependencyLifetime.PerRequest); resolver.AddDependency<IAmACommandProcessor, CommandProcessor>(DependencyLifetime.Singleton); resolver.AddDependency<ITaskRetriever, TaskRetriever>(DependencyLifetime.Singleton); resolver.AddDependency<ITaskListRetriever, TaskListRetriever>(DependencyLifetime.Singleton); return PipelineContinuation.Continue; }