Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public static StateMachineSagaRepositoryConfigurator <TInstance> RemoveWhenFinalized <TInstance>(
     this StateMachineSagaRepositoryConfigurator <TInstance> configurator)
     where TInstance : class, SagaStateMachineInstance
 {
     return(configurator.RemoveWhen(x => x.Final));
 }