Esempio n. 1
0
        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;
            }
        }
Esempio n. 4
0
        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());
        }