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; }
protected override void ConfigureRequestContainer(TinyIoCContainer tinyIoCContainer, NancyContext context) { tinyIoCContainer.Register(this.GetAccessToken(context), "access_token"); tinyIoCContainer.Register<ITemplateService, TemplateService>(); tinyIoCContainer.Register<IRenderingService, RenderingService>(); tinyIoCContainer.Register<IContentRepository, ContentRepository>(); tinyIoCContainer.Register<IContentFinder, ContentFinder>(); tinyIoCContainer.Register<IPathInstanceBuilder, PathInstanceBuilder>(); tinyIoCContainer.Register<IDynamicSourceProvider, DynamicSourceProvider>(); tinyIoCContainer.Register<IPluginContextProvider, PluginContextProvider>(); var sourceTypes = KolaConfigurationRegistry.Plugins.SelectMany(plugin => plugin.SourceTypes).ToArray(); tinyIoCContainer.Register((c, o) => sourceTypes.Select(c.Resolve).Cast<IDynamicSource>()); var contentProviderTypes = KolaConfigurationRegistry.Plugins.SelectMany(plugin => plugin.ContextProviderTypes).ToArray(); tinyIoCContainer.Register((c, o) => contentProviderTypes.Select(c.Resolve).Cast<IContextProvider>()); var container = new TinyIoCAdapter(tinyIoCContainer); var componentSpecifications = KolaConfigurationRegistry.Plugins.SelectMany(plugin => plugin.ComponentTypeSpecifications); KolaConfigurationRegistry.RegisterRenderer(new MultiRenderer(new RendererFactory(componentSpecifications, container))); foreach (var plugin in KolaConfigurationRegistry.Plugins) { plugin.ConfigureContainer(container); } }