Example #1
0
        private async Task MoveNextAsync(NextStateKind nextStateKind, CancellationToken cancellationToken)
        {
            if (_stateNode.NextStateKind != nextStateKind)
            {
                return;
            }

            _stateContext.StateMachineContext.MoveTo(_stateNode.DefaultState.StateNode.StateName);

            foreach (var ifState in _stateNode.IfStates)
            {
                if (await ifState.Condition(_stateContext, cancellationToken))
                {
                    _stateContext.StateMachineContext.MoveTo(ifState.StateNode.StateName);
                    break;
                }
            }
        }
Example #2
0
 public (StateNode IfState, StateNode IfState1, StateNode IfState2, StateNode IfState3, StateNode IfState4, StateNode DefaultState) SetNext(NextStateKind nextStateKind, IfState ifState, IfState ifState1, IfState ifState2, IfState ifState3, IfState ifState4, DefaultState defaultState)
 {
     SetNextInternal(nextStateKind, defaultState, ifState, ifState1, ifState2, ifState3, ifState4);
     return(ifState.StateNode, ifState1.StateNode, ifState2.StateNode, ifState3.StateNode, ifState4.StateNode, defaultState.StateNode);
 }
Example #3
0
 public StateNode SetNext(NextStateKind nextStateKind, DefaultState defaultState)
 {
     SetNextInternal(nextStateKind, defaultState);
     return(DefaultState.StateNode);
 }
Example #4
0
 public (StateNode IfState, StateNode IfState1, StateNode DefaultState) SetNext(NextStateKind nextStateKind, IfState ifState, IfState ifState1, DefaultState defaultState)
 {
     SetNextInternal(nextStateKind, defaultState, ifState, ifState1);
     return(ifState.StateNode, ifState1.StateNode, defaultState.StateNode);
 }
Example #5
0
 private void SetNextInternal(NextStateKind nextStateKind, DefaultState defaultState, params IfState[] ifStates)
 {
     NextStateKind = nextStateKind;
     DefaultState  = defaultState;
     IfStates      = ifStates.ToList();
 }