public static IServiceCollection AddStockInfra(this IServiceCollection services, IConfiguration configuration)
        {
            StockDbSettings stockDbSettings = new StockDbSettings();

            configuration.GetSection(nameof(StockDbSettings)).Bind(stockDbSettings);
            services.AddSingleton(stockDbSettings);

            services.AddDbContext <StockDbContext>(c =>
                                                   c.UseSqlServer(stockDbSettings.ConnectionStrings), ServiceLifetime.Transient);

            return(services);
        }
Exemplo n.º 2
0
        public static IHostBuilder CreateHostBuilder(string[] args)
        {
            return(Host.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.AddJsonFile("appsettings.json", true, true);
                config.AddEnvironmentVariables();

                if (args != null)
                {
                    config.AddCommandLine(args);
                }
            })
                   .ConfigureServices((hostContext, services) =>
            {
                services.AddOptions();

                var massTransitSettings = hostContext.Configuration.GetSection("MassTransitSettings")
                                          .Get <MassTransitSettings>();
                services.AddSingleton(massTransitSettings);

                StockDbSettings stockDbSettings = new StockDbSettings();
                hostContext.Configuration.GetSection(nameof(StockDbSettings)).Bind(stockDbSettings);
                services.AddSingleton(stockDbSettings);

                services.AddDbContext <StockDbContext>(c =>
                                                       c.UseSqlServer(stockDbSettings.ConnectionStrings), ServiceLifetime.Transient);

                var bus = BusConfigurator.Instance
                          .ConfigureBus(massTransitSettings, (cfg) =>
                {
                    cfg.ReceiveEndpoint(nameof(UpdateStockEventModel), e =>
                    {
                        var context = services.BuildServiceProvider().GetService <StockDbContext>();
                        e.Consumer(() => new UpdateStockConsumer(context));
                    });
                });

                bus.StartAsync();

                Console.WriteLine("Listening update stock event..");
                Console.ReadLine();
            }));
        }