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); }
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(); })); }