public InternalStateMachineEventActivitiesBuilder(AutomatonymousStateMachine <TInstance> machine, StateMachineModifier <TInstance> modifier, Action <EventActivities <TInstance>[]> committer) { _machine = machine ?? throw new ArgumentNullException(nameof(machine)); _modifier = modifier ?? throw new ArgumentNullException(nameof(modifier)); _committer = committer ?? throw new ArgumentNullException(nameof(committer)); _activities = new List <EventActivities <TInstance> >(); IsCommitted = false; }
private static void Request <TInstance, TRequest, TResponse>( this StateMachineModifier <TInstance> modifier, string requestName, RequestSettings settings, out Request <TRequest, TResponse> request) where TInstance : class where TRequest : class where TResponse : class { var smRequest = new StateMachineRequest <TRequest, TResponse>(requestName, settings); modifier.Event("Completed", out Event <TResponse> Completed); smRequest.Completed = Completed; modifier.Event("Faulted", out Event <Fault <TRequest> > Faulted); smRequest.Faulted = Faulted; modifier.Event("TimeoutExpired", out Event <TRequest> TimeoutExpired); smRequest.TimeoutExpired = TimeoutExpired; modifier.State("Pending", out State Pending); smRequest.Pending = Pending; request = smRequest; }
public static StateMachineModifier <TInstance> Request <TInstance, TRequest, TResponse>(this StateMachineModifier <TInstance> modifier, Action <RequestConfigurator <TestState, TRequest, TResponse> > configureRequest, string requestName, out Request <TRequest, TResponse> request) where TInstance : class where TRequest : class where TResponse : class { var configurator = new StateMachineRequestConfigurator <TestState, TRequest, TResponse>(); configureRequest(configurator); modifier.Request(requestName, configurator.Settings, out request); return(modifier); }