public static IStraightforwardStateMachineBuilder <TContext, IStraightforwardStatefulTaskWithRollback <TContext> > AsInitial <TContext>( this StraightforwardStatefulTaskDoAction <TContext> doAction, StatefulTaskRollbackAction <TContext>?rollbackAction) { return(StraightforwardStatefulTaskWithRollbackWrapper.Create(doAction, rollbackAction) .AsInitial <TContext, IStraightforwardStatefulTaskWithRollback <TContext> >()); }
public StraightforwardStatefulTaskWithRollbackWrapper( StraightforwardStatefulTaskDoAction <TContext> doAction, StatefulTaskRollbackAction <TContext>?rollbackAction) { _doAction = doAction.ThrowIfNull(nameof(doAction)); _rollbackAction = rollbackAction ?? (context => StatefulTaskWithRollbackWrapper.DefaultTryRollbackSafe(context)); }
public static IStateMachineBuilderWithoutStateId <TContext, TStateId, IStatefulTaskWithRollback <TContext, TStateId> > AsInitial <TContext, TStateId>( this StatefulTaskDoAction <TContext, TStateId> doAction, StatefulTaskRollbackAction <TContext>?rollbackAction, TStateId initialStateId) { return(StatefulTaskWithRollbackWrapper.Create(doAction, rollbackAction) .AsInitial <TContext, TStateId, IStatefulTaskWithRollback <TContext, TStateId> >(initialStateId)); }
public static IStraightforwardStateMachineBuilder <TContext, IStraightforwardStatefulTaskWithRollback <TContext> > ThenGoTo <TContext>( this IStraightforwardStateMachineBuilder <TContext, IStraightforwardStatefulTaskWithRollback <TContext> > builder, StraightforwardStatefulTaskDoAction <TContext> doAction, StatefulTaskRollbackAction <TContext>?rollbackAction) { var statefulTask = StraightforwardStatefulTaskWithRollbackWrapper.Create(doAction, rollbackAction); return(builder.AddStatefulTask(statefulTask)); }
public static IStateMachineBuilderWithoutStateId <TContext, TStateId, IStatefulTaskWithRollback <TContext, TStateId> > GoTo <TContext, TStateId>( this IStateMachineBuilderWithStateId <TContext, TStateId, IStatefulTaskWithRollback <TContext, TStateId> > builder, StatefulTaskDoAction <TContext, TStateId> doAction, StatefulTaskRollbackAction <TContext>?rollbackAction) { var statefulTask = StatefulTaskWithRollbackWrapper.Create(doAction, rollbackAction); return(builder.AddStatefulTask(statefulTask)); }