public StateMachineEventConnectorFactory(SagaStateMachine <TInstance> stateMachine, EventCorrelation <TInstance, TMessage> correlation) { var consumeFilter = new StateMachineSagaMessageFilter <TInstance, TMessage>(stateMachine, correlation.Event); _connector = new StateMachineSagaMessageConnector <TInstance, TMessage>(consumeFilter, correlation.Policy, correlation.FilterFactory, correlation.MessageFilter, correlation.ConfigureConsumeTopology); }
public OrchestratesSagaConnectorFactory() { var policy = new AnyExistingSagaPolicy <TSaga, TMessage>(); var consumeFilter = new OrchestratesSagaMessageFilter <TSaga, TMessage>(); _connector = new CorrelatedSagaMessageConnector <TSaga, TMessage>(consumeFilter, policy, x => x.Message.CorrelationId); }
public ObservesSagaConnectorFactory() { var policy = new AnyExistingSagaPolicy <TSaga, TMessage>(); ISagaQueryFactory <TSaga, TMessage> queryFactory = new ExpressionSagaQueryFactory <TSaga, TMessage>(GetFilterExpression()); var consumeFilter = new ObservesSagaMessageFilter <TSaga, TMessage>(); _connector = new QuerySagaMessageConnector <TSaga, TMessage>(consumeFilter, policy, queryFactory); }
public InitiatedBySagaConnectorFactory() { var consumeFilter = new InitiatedBySagaMessageFilter <TSaga, TMessage>(); ISagaFactory <TSaga, TMessage> sagaFactory = new DefaultSagaFactory <TSaga, TMessage>(); var policy = new NewSagaPolicy <TSaga, TMessage>(sagaFactory, false); _connector = new CorrelatedSagaMessageConnector <TSaga, TMessage>(consumeFilter, policy, x => x.Message.CorrelationId); }
public OrchestratesSagaConnectorFactory() { IPipe <ConsumeContext <TMessage> > missingPipe = Pipe.Execute <ConsumeContext <TMessage> >(context => throw new SagaException("An existing saga instance was not found", typeof(TSaga), typeof(TMessage), context.CorrelationId ?? Guid.Empty)); var policy = new AnyExistingSagaPolicy <TSaga, TMessage>(missingPipe); var consumeFilter = new OrchestratesSagaMessageFilter <TSaga, TMessage>(); _connector = new CorrelatedSagaMessageConnector <TSaga, TMessage>(consumeFilter, policy, x => x.Message.CorrelationId); }