public void ConfigureStateMachineCorrelations(StateMachineSagaRepositoryConfigurator <ImageRetrievalState> r) { r.Correlate(Requested, (state, message) => state.SourceAddress == message.SourceAddress) .SelectCorrelationId(message => message.RequestId); r.Correlate(Retrieved, (state, message) => state.SourceAddress == message.SourceAddress); r.Correlate(NotFound, (state, message) => state.SourceAddress == message.SourceAddress); r.Correlate(RetrieveFailed, (state, message) => state.SourceAddress == message.SourceAddress); }
public static StateMachineSagaRepositoryConfigurator <TInstance> RemoveWhen <TInstance>( this StateMachineSagaRepositoryConfigurator <TInstance> configurator, Func <StateMachine <TInstance>, State> stateSelector) where TInstance : class, SagaStateMachineInstance { StateMachine <TInstance> stateMachine = configurator.StateMachine; State state = stateSelector(stateMachine).For <TInstance>(); configurator.RemoveWhen(x => stateMachine.InstanceStateAccessor.Get(x) == state); return(configurator); }
public static StateMachineSagaRepositoryConfigurator <TInstance> RemoveWhenFinalized <TInstance>( this StateMachineSagaRepositoryConfigurator <TInstance> configurator) where TInstance : class, SagaStateMachineInstance { return(configurator.RemoveWhen(x => x.Final)); }