protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { base.ConfigureRequestContainer(container, context); // create a singleton instance which will be reused for all calls in current request var ipb = new Router(); container.Register <ICommandSender, Router>(ipb); container.Register <IHandlerRegistrar, Router>(ipb); container.Register <IEventSerializer, EventSerializer>(new EventSerializer()); container.Register <IEventSourceFactory, EventSourceFactory>(); container.Register <ISettingsService, SettingsService>(); container.Register <NeuronCommandHandlers>(); var ticl = new TinyIoCServiceLocator(container); container.Register <IServiceProvider, TinyIoCServiceLocator>(ticl); var registrar = new RouteRegistrar(ticl); registrar.Register(typeof(NeuronCommandHandlers)); // Here we register our user mapper as a per-request singleton. // As this is now per-request we could inject a request scoped // database "context" or other request scoped services. ((TinyIoCServiceLocator)container.Resolve <IServiceProvider>()).SetRequestContainer(container); }
protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { base.ConfigureRequestContainer(container, context); container.Register <ISettingsService, SettingsService>(); container.Register <INeuronRepository, NeuronRepository>(); container.Register <ITerminalRepository, TerminalRepository>(); container.Register <IRepository <Domain.Model.Settings>, SettingsRepository>(); container.Register <INotificationLogClient, StandardNotificationLogClient>(); var ipb = new Router(); container.Register <ICommandSender, Router>(ipb); container.Register <IHandlerRegistrar, Router>(ipb); container.Register <GraphCommandHandlers>(); var ticl = new TinyIoCServiceLocator(container); container.Register <IServiceProvider, TinyIoCServiceLocator>(ticl); var registrar = new RouteRegistrar(ticl); registrar.Register(typeof(GraphCommandHandlers)); // As this is now per-request we could inject a request scoped // database "context" or other request scoped services. ((TinyIoCServiceLocator)container.Resolve <IServiceProvider>()).SetRequestContainer(container); }
protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { base.ConfigureRequestContainer(container, context); // create a singleton instance which will be reused for all calls in current request var ipb = new Router(); container.Register <ICommandSender, Router>(ipb); container.Register <IHandlerRegistrar, Router>(ipb); container.Register <IEventSerializer, EventSerializer>(new EventSerializer()); container.Register <ISettingsService, SettingsService>(); container.Register <IEventStoreUrlService>( (tic, npo) => { var ss = container.Resolve <ISettingsService>(); return(new EventStoreUrlService( ss.EventSourcingInBaseUrl + "/", ss.EventSourcingOutBaseUrl + "/" )); }); container.Register <IEventStore, HttpEventStoreClient>(); container.Register <IRepository, Repository>(); container.Register <ISession, Session>(); container.Register <IItemAdapter, ItemAdapter>(); container.Register <ItemCommandHandlers>(); var ticl = new TinyIoCServiceLocator(container); container.Register <IServiceProvider, TinyIoCServiceLocator>(ticl); var registrar = new RouteRegistrar(ticl); registrar.Register(typeof(ItemCommandHandlers)); // Here we register our user mapper as a per-request singleton. // As this is now per-request we could inject a request scoped // database "context" or other request scoped services. ((TinyIoCServiceLocator)container.Resolve <IServiceProvider>()).SetRequestContainer(container); }
protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { base.ConfigureRequestContainer(container, context); // create a singleton instance which will be reused for all calls in current request var ipb = new Router(); container.Register <ICommandSender, Router>(ipb); container.Register <IHandlerRegistrar, Router>(ipb); container.Register <IRequestProvider>( (tic, npo) => { var rp = new RequestProvider(); rp.SetHttpClientHandler(new HttpClientHandler()); return(rp); }); container.Register <ISettingsService, SettingsService>(); container.Register <IValidationClient, HttpValidationClient>(); container.Register <INeuronGraphQueryClient, HttpNeuronGraphQueryClient>(); // data container.Register <IEventStoreUrlService>( (tic, npo) => { var ss = container.Resolve <ISettingsService>(); return(new EventStoreUrlService( ss.EventSourcingInBaseUrl + "/", ss.EventSourcingOutBaseUrl + "/" )); }); container.Register <IEventSerializer, EventSerializer>(); container.Register <IAuthoredEventStore, HttpEventStoreClient>(); container.Register <IInMemoryAuthoredEventStore, InMemoryEventStore>(); container.Register <IRepository>((tic, npo) => new Repository(container.Resolve <IInMemoryAuthoredEventStore>())); container.Register <ISession, Session>(); // neuron container.Register <INeuronAdapter, NeuronAdapter>(); container.Register((tic, npo) => new neurUL.Cortex.Application.Neurons.NeuronCommandHandlers(container.Resolve <IInMemoryAuthoredEventStore>(), container.Resolve <ISession>())); container.Register <ITerminalAdapter, TerminalAdapter>(); container.Register((tic, npo) => new neurUL.Cortex.Application.Neurons.TerminalCommandHandlers(container.Resolve <IInMemoryAuthoredEventStore>(), container.Resolve <ISession>())); // tag container.Register <ei8.Data.Tag.Port.Adapter.In.InProcess.IItemAdapter, ei8.Data.Tag.Port.Adapter.In.InProcess.ItemAdapter>(); container.Register((tic, npo) => new Data.Tag.Application.ItemCommandHandlers(container.Resolve <IInMemoryAuthoredEventStore>(), container.Resolve <ISession>())); // aggregate container.Register <ei8.Data.Aggregate.Port.Adapter.In.InProcess.IItemAdapter, ei8.Data.Aggregate.Port.Adapter.In.InProcess.ItemAdapter>(); container.Register((tic, npo) => new Data.Aggregate.Application.ItemCommandHandlers(container.Resolve <IInMemoryAuthoredEventStore>(), container.Resolve <ISession>())); // external reference container.Register <ei8.Data.ExternalReference.Port.Adapter.In.InProcess.IItemAdapter, ei8.Data.ExternalReference.Port.Adapter.In.InProcess.ItemAdapter>(); container.Register((tic, npo) => new Data.ExternalReference.Application.ItemCommandHandlers(container.Resolve <IInMemoryAuthoredEventStore>(), container.Resolve <ISession>())); container.Register <NeuronCommandHandlers>(); container.Register <TerminalCommandHandlers>(); var ticl = new TinyIoCServiceLocator(container); container.Register <IServiceProvider, TinyIoCServiceLocator>(ticl); var registrar = new RouteRegistrar(ticl); registrar.Register(typeof(NeuronCommandHandlers)); // neuron registrar.Register(typeof(neurUL.Cortex.Application.Neurons.NeuronCommandHandlers)); // tag registrar.Register(typeof(ei8.Data.Tag.Application.ItemCommandHandlers)); // aggregate registrar.Register(typeof(ei8.Data.Aggregate.Application.ItemCommandHandlers)); // external reference registrar.Register(typeof(ei8.Data.ExternalReference.Application.ItemCommandHandlers)); ((TinyIoCServiceLocator)container.Resolve <IServiceProvider>()).SetRequestContainer(container); }