/// <summary> /// Ignore the event in this state (no exception is thrown) /// </summary> /// <typeparam name="TData">The event data type</typeparam> /// <param name="event">The ignored event</param> /// <param name="filter">The filter to apply to the event data</param> /// <returns></returns> protected EventActivities <TInstance> Ignore <TData>(Event <TData> @event, StateMachineEventFilter <TInstance, TData> filter) { ActivityBinder <TInstance> activityBinder = new IgnoreEventActivityBinder <TInstance, TData>(@event, filter); return(new DataEventActivityBinder <TInstance, TData>(this, @event, activityBinder)); }
public StateMachineEventActivitiesBuilder <TInstance> When <TData>(Event <TData> @event, StateMachineEventFilter <TInstance, TData> filter, Func <EventActivityBinder <TInstance, TData>, EventActivityBinder <TInstance, TData> > configure) { _activities.Add(configure(_machine.When(@event, filter))); return(this); }
public DataEventActivityBinder(StateMachine <TInstance> machine, Event <TData> @event, StateMachineEventFilter <TInstance, TData> filter, params ActivityBinder <TInstance>[] activities) { _event = @event; _activities = activities ?? new ActivityBinder <TInstance> [0]; _machine = machine; _filter = filter; }
public TriggerEventActivityBinder(StateMachine <TInstance> machine, Event @event, StateMachineEventFilter <TInstance> filter, params ActivityBinder <TInstance>[] activities) { _event = @event; _filter = filter; _machine = machine; _activities = activities ?? new ActivityBinder <TInstance> [0]; }
DataEventActivityBinder(StateMachine <TInstance> machine, Event <TData> @event, StateMachineEventFilter <TInstance, TData> filter, ActivityBinder <TInstance>[] activities, params ActivityBinder <TInstance>[] appendActivity) { _activities = new ActivityBinder <TInstance> [activities.Length + appendActivity.Length]; Array.Copy(activities, 0, _activities, 0, activities.Length); Array.Copy(appendActivity, 0, _activities, activities.Length, appendActivity.Length); _event = @event; _machine = machine; _filter = filter; }
/// <summary> /// When the event is fired in this state, and the event data matches the filter expression, execute the chained activities /// </summary> /// <typeparam name="TData">The event data type</typeparam> /// <param name="event">The fired event</param> /// <param name="filter">The filter applied to the event</param> /// <returns></returns> protected EventActivityBinder <TInstance, TData> When <TData>(Event <TData> @event, StateMachineEventFilter <TInstance, TData> filter) { return(new DataEventActivityBinder <TInstance, TData>(this, @event, filter)); }
public SelectedStateEventFilter(StateMachineEventFilter <TInstance, TData> filter) { _filter = filter; }
public void Ignore <T>(Event <T> @event, StateMachineEventFilter <TInstance, T> filter) { _ignoredEvents[@event] = new SelectedStateEventFilter <TInstance, T>(filter); }
public ConditionalEventActivity(Activity <TInstance, TData> activity, StateMachineEventFilter <TInstance, TData> filter) { _activity = activity; _filter = filter; }
public StateMachineEventActivitiesBuilder <TInstance> Ignore <TData>(Event <TData> @event, StateMachineEventFilter <TInstance, TData> filter) { _activities.Add(_machine.Ignore(@event, filter)); return(this); }