/// <summary> /// Adds a SagaStateMachine to the registry, using the factory method, and updates the registrar prior to registering so that the default /// saga registrar isn't notified. /// </summary> /// <param name="configurator"></param> /// <typeparam name="TStateMachine"></typeparam> /// <typeparam name="TInstance"></typeparam> public static void AddSagaStateMachine <TStateMachine, TInstance>(this IServiceCollectionConfigurator configurator) where TStateMachine : class, SagaStateMachine <TInstance> where TInstance : class, SagaStateMachineInstance { var registrar = new DependencyInjectionSagaStateMachineRegistrar(configurator.Collection); configurator.AddSagaStateMachine <TStateMachine, TInstance>(registrar); }
public void ConfigureMassTransit(IServiceCollectionConfigurator configurator, IServiceCollection services) { configurator.AddConsumersFromNamespaceContaining <AllocateInventoryConsumer>(); configurator.AddSagaStateMachine <AllocationStateMachine, AllocationState>(typeof(AllocateStateMachineDefinition)) .MongoDbRepository(r => { r.Connection = "mongodb://mongo"; r.DatabaseName = "allocations"; }); }
public void ConfigureMassTransit(IServiceCollectionConfigurator configurator, IServiceCollection services) { services.AddScoped <AcceptOrderActivity>(); configurator.AddConsumersFromNamespaceContaining <SubmitOrderConsumer>(); configurator.AddActivitiesFromNamespaceContaining <AllocateInventoryActivity>(); configurator.AddConsumersFromNamespaceContaining <RoutingSlipBatchEventConsumer>(); configurator.AddSagaStateMachine <OrderStateMachine, OrderState>(typeof(OrderStateMachineDefinition)) .MongoDbRepository(r => { r.Connection = "mongodb://mongo"; r.DatabaseName = "orders"; }); configurator.AddRequestClient <AllocateInventory>(); }