/// <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);
        }
示例#2
0
 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";
     });
 }
示例#3
0
        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>();
        }