public IEventCorrelationConfigurator <TInstance, TData> CorrelateById(Func <ConsumeContext <TData>, Guid> selector) { _messageFilter = new CorrelationIdMessageFilter <TData>(selector); _sagaFilterFactory = (repository, policy, sagaPipe) => new CorrelatedSagaFilter <TInstance, TData>(repository, policy, sagaPipe); return(this); }
public StateMachineSagaMessageConnector(IFilter <SagaConsumeContext <TInstance, TMessage> > consumeFilter, ISagaPolicy <TInstance, TMessage> policy, SagaFilterFactory <TInstance, TMessage> sagaFilterFactory, IFilter <ConsumeContext <TMessage> > messageFilter) : base(consumeFilter) { _policy = policy; _sagaFilterFactory = sagaFilterFactory; _messageFilter = messageFilter; }
public StateMachineEventConnectorFactory(SagaStateMachine <TInstance> stateMachine, EventCorrelation <TInstance, TMessage> correlation) { _consumeFilter = new StateMachineSagaMessageFilter <TInstance, TMessage>(stateMachine, correlation.Event); _sagaFilterFactory = correlation.FilterFactory; _policy = correlation.Policy; _messageFilter = correlation.MessageFilter; }
public MassTransitEventCorrelation(SagaStateMachine <TInstance> machine, Event <TData> @event, SagaFilterFactory <TInstance, TData> sagaFilterFactory, IFilter <ConsumeContext <TData> > messageFilter, IPipe <ConsumeContext <TData> > missingPipe, ISagaFactory <TInstance, TData> sagaFactory, bool insertOnInitial) { _event = @event; FilterFactory = sagaFilterFactory; _messageFilter = messageFilter; _missingPipe = missingPipe; _sagaFactory = sagaFactory; _insertOnInitial = insertOnInitial; _machine = machine; _policy = new Lazy <ISagaPolicy <TInstance, TData> >(GetSagaPolicy); }
public MassTransitEventCorrelationConfigurator(SagaStateMachine <TInstance> machine, Event <TData> @event, EventCorrelation existingCorrelation) { _event = @event; _machine = machine; _insertOnInitial = false; _sagaFactory = new DefaultSagaFactory <TInstance, TData>(); var correlation = existingCorrelation as EventCorrelation <TInstance, TData>; if (correlation != null) { _sagaFilterFactory = correlation.FilterFactory; _messageFilter = correlation.MessageFilter; } }
public IEventCorrelationConfigurator <TInstance, TData> CorrelateBy(Expression <Func <TInstance, ConsumeContext <TData>, bool> > correlationExpression) { if (correlationExpression == null) { throw new ArgumentNullException(nameof(correlationExpression)); } _sagaFilterFactory = (repository, policy, sagaPipe) => { var queryFactory = new ExpressionCorrelationSagaQueryFactory <TInstance, TData>(correlationExpression); return(new QuerySagaFilter <TInstance, TData>(repository, policy, queryFactory, sagaPipe)); }; return(this); }
public IEventCorrelationConfigurator <TInstance, TData> CorrelateById <T>(Expression <Func <TInstance, T> > propertyExpression, Func <ConsumeContext <TData>, T> selector) where T : struct { if (propertyExpression == null) { throw new ArgumentNullException(nameof(propertyExpression)); } if (selector == null) { throw new ArgumentNullException(nameof(selector)); } _sagaFilterFactory = (repository, policy, sagaPipe) => { var queryFactory = new PropertyExpressionSagaQueryFactory <TInstance, TData, T>(propertyExpression, selector); return(new QuerySagaFilter <TInstance, TData>(repository, policy, queryFactory, sagaPipe)); }; return(this); }