private void HandleMachineStateExited(object sender, StateExitedEventArgs <TState> args) { if (!_filterState.HasValue || args.State.Equals(_filterState.Value)) { Trip(sender, args); } }
/// <summary> /// The State ExitCompleted event occurs while transitions are disabled, so modifying the /// <see cref="LoopCount"/> property will not create a recursive event loop. /// Using the StateMachine StateChanged event instead would cause a recursive loop. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void HandleStateExited(object sender, StateExitedEventArgs args) { if (args.TransitionArgs.Transition.Consumer == args.TransitionArgs.Transition.Supplier) { if (LoopCount > 0) { LoopCount--; } } }
internal static StateExitedEventArgs <TState> ToStateExitedArgs <TState>(this StateExitedEventArgs args) where TState : struct { var stateArgs = new StateExitedEventArgs <TState>() { State = args.State.ToEnum <TState>(), TransitionArgs = args.TransitionArgs == null ? new TransitionEventArgs() : args.TransitionArgs }; return(stateArgs); }
internal static StateExitedEventArgs ToIStateExitedArgs(this Transition transition, TripEventArgs internalArgs) { var stateArgs = new StateExitedEventArgs() { State = transition.From, TransitionArgs = transition.ToTransitionArgs(internalArgs) }; return(stateArgs); }
private void State_ExitInitiated(object sender, StateExitedEventArgs e) { }
private void State_ExitCompleted(object sender, StateExitedEventArgs e) { }
private void HandleStateExited(object sender, StateExitedEventArgs args) { Trip(sender, args); }
protected virtual void RaiseExited(StateExitedEventArgs args) { Exited?.Invoke(this, args); }