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;
 }
Example #2
0
            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;
            }
Example #3
0
            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);
            }