コード例 #1
0
ファイル: Program.cs プロジェクト: mishrsud/Ximo
        private static IServiceProvider Bootstrap()
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", false, true);
            IConfiguration configuration = builder.Build();

            serviceCollection.AddSingleton(configuration);

            serviceCollection.AddLogging();

            serviceCollection.RegisterDefaultCommandBus();
            serviceCollection.RegisterDefaulDomainEventBus();
            serviceCollection.RegisterDefaultQueryProcessor();

            serviceCollection.LoadModule <DomainModule>();
            serviceCollection.LoadModule <DomainDataModule>(configuration);
            serviceCollection.LoadModule <ReadModelModule>(configuration);

            var serviceProvider = serviceCollection.BuildServiceProvider();

            serviceProvider.GetService <ILoggerFactory>().AddConsole();

            var domainEventBus = serviceProvider.GetRequiredService <IDomainEventBus>();

            DomainModule.RegisterSubscriptions(domainEventBus);
            ReadModelModule.RegisterSubscriptions(domainEventBus);

            return(serviceProvider);
        }