static async Task Main(string[] args) { var saga = new RemitterStateMachine(); var repo = new InMemorySagaRepository <RemitterStateData>(); var builder = new HostBuilder() .ConfigureServices((hostContext, services) => { services.TryAddSingleton(KebabCaseEndpointNameFormatter.Instance); services.AddMassTransit(cfg => { cfg.AddBus(provider => ServiceBus.ConfigureBus(provider, (cfg, host) => { cfg.ReceiveEndpoint(BusConfiguration.SagaQueue, e => { e.StateMachineSaga(saga, repo); }); })); }); services.AddMassTransitHostedService(); }); await builder.RunConsoleAsync(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); //services.AddMassTransit(config => //{ // config.AddBus(provider => ServiceBus.ConfigureBus(provider)); //}); services.AddMassTransit(config => { config.AddConsumer <RmReceiveConsumer>(); config.AddBus(provider => ServiceBus.ConfigureBus(provider, (config, host) => { config.ReceiveEndpoint(BusConfiguration.AmlQueueName, o => o.ConfigureConsumer <RmReceiveConsumer>(provider)); } )); }); services.AddMassTransitHostedService(); services.AddDbContext <SymexDbContext>(db => db.UseSqlServer(Configuration.GetConnectionString("SymexDbConnection"))); services.AddSingleton <IRemitterDataAccess, RemitterData>(); }