public void Start(IAppBuilder app) { WarmupPlugins(); _log.Debug("Starting ..."); try { _compositionRoot.Build(registrar => { LetPluginsRegisterServices(registrar); registrar.RegisterService(x => _cqsBuilder.CreateCommandBus(Container), Lifetime.Singleton); registrar.RegisterService(x => _cqsBuilder.CreateQueryBus(Container), Lifetime.Singleton); registrar.RegisterService(x => _cqsBuilder.CreateEventBus(Container), Lifetime.Singleton); // let us guard it since it runs events in the background. var service = registrar.Registrations.First(x => x.Implements(typeof(IEventBus))); service.AddService(typeof(IApplicationService)); registrar.RegisterService(x => _cqsBuilder.CreateRequestReplyBus(Container), Lifetime.Singleton); }, Startup.ConfigurationStore); BuildServices(); _appManager.Start(); _backgroundJobManager.Start(); _log.Debug("...started"); } catch (Exception exception) { _log.Error("Failed to start.", exception); throw; } }
public void Start() { _log.Debug("Starting ..."); try { _compositionRoot.Build(registrar => { registrar.RegisterService(x => _cqsBuilder.CreateCommandBus(Container), Lifetime.Singleton); registrar.RegisterService(x => _cqsBuilder.CreateQueryBus(Container), Lifetime.Singleton); registrar.RegisterService(x => _cqsBuilder.CreateEventBus(Container), Lifetime.Singleton); registrar.RegisterService(x => _cqsBuilder.CreateRequestReplyBus(Container), Lifetime.Singleton); }); BuildServices(); ConfigureDataMapper(); _appManager.Start(); _backgroundJobManager.Start(); _log.Debug("...started"); } catch (Exception exception) { _log.Error("Failed to start.", exception); throw; } }
public void Start(IAppBuilder app) { WarmupPlugins(); _log.Debug("Starting ..."); try { _compositionRoot.Build(registrar => { LetPluginsRegisterServices(registrar); registrar.RegisterService <IMessageBus>(x => { var queue = x.Resolve <IMessageQueueProvider>().Open("Messaging"); var bus = new SingleInstanceMessageBus(queue); return(bus); }, Lifetime.Singleton); registrar.RegisterConcrete <ScopedQueryBus>(); registrar.RegisterService(CreateMessageInvoker, Lifetime.Scoped); registrar.RegisterService(x => CreateQueueListener(x, "Messaging", "Messaging"), Lifetime.Singleton); registrar.RegisterService(x => CreateQueueListener(x, "Reports", "Messaging"), Lifetime.Singleton); registrar.RegisterService(x => CreateQueueListener(x, "Feedback", "Messaging"), Lifetime.Singleton); registrar.RegisterInstance <IMessageQueueProvider>(_queueProvider); // let us guard it since it runs events in the background. //var service = registrar.Registrations.First(x => x.Implements(typeof(IMessageBus))); //service.AddService(typeof(IApplicationService)); }, Startup.ConfigurationStore); var listeners = Container.ResolveAll <QueueListener>().ToArray(); listeners .ForEach(x => x .RunAsync(_shutdownToken.Token) .ContinueWith(OnStopped) ); BuildServices(); _appManager.Start(); _backgroundJobManager.Start(); _log.Debug("...started"); } catch (Exception exception) { _log.Error("Failed to start.", exception); throw; } }
private static ArgumentParser CompositionRootWithMyWriter(MemoryConsoleWriter writer) { // CLI Application CompositionRoot var compositionRoot = new CompositionRoot() .Register(); // We override the Console Output to the Memory Writer compositionRoot.Builder.Register(context => writer).As <IConsoleWriter>(); OverrideDatabase(compositionRoot); OverrideConsoleApplicationInformationProvider(compositionRoot); // Return The application Object return(compositionRoot .Build() .Resolve <ArgumentParser>()); }
private static ILifetimeScope ValueFactory() { Debug.WriteLine($"Create nested container"); // reseed DB DbUtil.SeedDbContext(); // register components var builder = new CompositionRoot() .GetRegistrations() .RegisterTests(); builder.Register(_ => Db.Value); // create nested container return(builder.Build().BeginLifetimeScope()); }