public DefaultStateMachineFiller(
     IStateMachineExecutor <TState, TStateId> executor,
     TStateId stateIdToFill)
 {
     Executor      = executor;
     StateIdToFill = stateIdToFill;
 }
        public StateMachineSafeExecutor(
            IStateMachineExecutor <TState> realExecutor,
            Action <Exception>?handler)
        {
            _realExecutor = realExecutor.ThrowIfNull(nameof(realExecutor));

            _handler = handler ?? (ex => Logger.Exception(ex));
        }
Exemplo n.º 3
0
 private static IStateMachineExecutor <State, StateId> FillExecutor(
     this IStateMachineExecutor <State, StateId> executor)
 {
     return(executor
            .On(StateId.StateA).GoTo(new TaskA())
            .On(StateId.StateB).GoTo(new TaskB())
            .On(StateId.StateC).GoTo(new TaskC())
            .On(StateId.FinalState).GoTo(FinalStatefulTask <State> .Create(StateId.FinalState)));
 }
Exemplo n.º 4
0
        public static TState Execute <TState, TStateId>(
            this IStateMachineExecutor <TState, TStateId> executor)
            where TState : class
        {
            executor.ThrowIfNull(nameof(executor));

            using (var enumerator = executor.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    // All actions perform in MoveNext.
                }
            }

            return(executor.State);
        }
Exemplo n.º 5
0
 public StateMachine(IStateMachineDefinition <TState, TTrigger> definition, IStateMachineExecutor <TState, TTrigger, TContext> executor = null)
 {
     Definition = definition;
     Executor   = executor ?? new StateMachineExecutor <TState, TTrigger, TContext>();
 }
Exemplo n.º 6
0
 public static IStateMachineExecutor <TState, TStateId> CatchExceptions <TState, TStateId>(
     this IStateMachineExecutor <TState, TStateId> executor)
     where TState : class
 {
     return(executor.CatchExceptions(handler: null));
 }
Exemplo n.º 7
0
 public static IStateMachineExecutor <TState, TStateId> CatchExceptions <TState, TStateId>(
     this IStateMachineExecutor <TState, TStateId> executor, Action <Exception>?handler)
     where TState : class
 {
     return(new StateMachineSafeExecutor <TState, TStateId>(executor, handler));
 }
Exemplo n.º 8
0
 public static IStateMachineFiller <TState, TStateId> On <TState, TStateId>(
     this IStateMachineExecutor <TState, TStateId> executor, TStateId stateId)
     where TState : class
 {
     return(DefaultStateMachineFiller.Create(executor, stateId));
 }