public static UnsubscribeAction SubscribeStateMachineSaga <TInstance>( this IServiceBus bus, StateMachine <TInstance> stateMachine, ISagaRepository <TInstance> sagaRepository) where TInstance : class, SagaStateMachineInstance { var stateMachineSagaRepositoryConfigurator = new StateMachineSagaRepositoryConfiguratorImpl <TInstance>(stateMachine, sagaRepository); StateMachineSagaRepository <TInstance> repository = stateMachineSagaRepositoryConfigurator.Configure(); var connector = new StateMachineConnector <TInstance>(stateMachine, repository); return(bus.Configure(x => connector.Connect(x))); }
public static StateMachineSubscriptionConfigurator <TInstance> StateMachineSaga <TInstance>( this SubscriptionBusServiceConfigurator configurator, StateMachine <TInstance> stateMachine, ISagaRepository <TInstance> sagaRepository) where TInstance : class, SagaStateMachineInstance { var stateMachineSagaRepositoryConfigurator = new StateMachineSagaRepositoryConfiguratorImpl <TInstance>(stateMachine, sagaRepository); StateMachineSagaRepository <TInstance> repository = stateMachineSagaRepositoryConfigurator.Configure(); var stateMachineConfigurator = new StateMachineSubscriptionConfiguratorImpl <TInstance>(stateMachine, repository); var busServiceConfigurator = new SubscriptionBusServiceBuilderConfiguratorImpl(stateMachineConfigurator); configurator.AddConfigurator(busServiceConfigurator); return(stateMachineConfigurator); }