Example #1
0
        internal void AddTransition(IState state, IInvokableTransition transition, IEventDelegate parentStateMachine)
        {
            this.SetParentStateMachine(parentStateMachine, state);

            OptimizingList <IInvokableTransition> transitions;

            if (!this.transitions.TryGetValue(state, out transitions))
            {
                transitions = new OptimizingList <IInvokableTransition>();
            }

            var firstThatWillAlwaysOccur = transitions.FirstOrDefault(x => x.WillAlwaysOccur);

            if (firstThatWillAlwaysOccur != null)
            {
                throw new ArgumentException($"{transition} will never occur from {state}: {firstThatWillAlwaysOccur} was added first, and will always happen");
            }

            transitions.Add(transition);
            this.transitions[state] = transitions;
        }
Example #2
0
 internal void AddTransition(IState state, IInvokableTransition transition, IEventDelegate parentStateMachine)
 {
     this.innerEvent.SetParentStateMachine(parentStateMachine, state, this);
     this.innerEvent.AddTransition(state, transition);
 }
Example #3
0
 internal void AddTransition(IState state, IInvokableTransition transition)
 {
     this.innerEvent.AddTransition(state, transition);
 }
Example #4
0
 internal void AddTransition(IState state, IInvokableTransition transition)
 {
     this.innerEvent.AddTransition(state, transition);
 }