private static IStateMachineBuilderWithoutStateId <Context, StateId, IStatefulTask <Context, StateId> > FillExecutor( IStatefulTask <Context, StateId> initialTask) { return(initialTask.AsInitial(StateId.Initial) .On(StateId.StateA).GoTo(new TaskA()) .On(StateId.StateB).GoTo(new TaskB()) .On(StateId.StateC).GoTo(new TaskC()) .OnFinalGoToSelfLoop(StateId.Final)); }
// To simplify call (no need in generic arguments). public static IStateMachineBuilderWithoutStateId <TContext, TStateId, IStatefulTask <TContext, TStateId> > AsInitial <TContext, TStateId>( this IStatefulTask <TContext, TStateId> initialTask, TStateId initialStateId) { return(initialTask.AsInitial <TContext, TStateId, IStatefulTask <TContext, TStateId> >(initialStateId)); }