Esempio n. 1
0
 public void AddEntryAction(Action <Transition, object[]> action, string entryActionDescription)
 {
     EntryActions.Add(
         new EntryActionBehavior(
             Enforce.ArgumentNotNull(action, nameof(action)),
             Enforce.ArgumentNotNull(entryActionDescription, nameof(entryActionDescription))));
 }
Esempio n. 2
0
 public void AddEntryAction(Func <Transition, object[], Task> action, Reflection.InvocationInfo entryActionDescription)
 {
     EntryActions.Add(
         new EntryActionBehavior.Async(
             action,
             entryActionDescription));
 }
Esempio n. 3
0
 public void AddEntryAction(TTrigger trigger, Action <Transition, object[]> action, string entryActionDescription)
 {
     Enforce.ArgumentNotNull(action, nameof(action));
     EntryActions.Add(
         new EntryActionBehavior((t, args) =>
     {
         if (t.Trigger.Equals(trigger))
         {
             action(t, args);
         }
     },
                                 Enforce.ArgumentNotNull(entryActionDescription, nameof(entryActionDescription))));
 }
Esempio n. 4
0
        public void DeleteAction(Guid outputId)
        {
            if (EntryActions != null && EntryActions.Contains(outputId))
            {
                var actions = new List <Guid>(EntryActions.Where(x => x != outputId));
                EntryActions = actions.ToArray();
            }

            if (ExitActions != null && ExitActions.Contains(outputId))
            {
                var actions = new List <Guid>(ExitActions.Where(x => x != outputId));
                ExitActions = actions.ToArray();
            }
        }
Esempio n. 5
0
            public void AddEntryAction(TTrigger trigger, Func <Transition, object[], Task> action, Reflection.InvocationInfo entryActionDescription)
            {
                if (action == null)
                {
                    throw new ArgumentNullException(nameof(action));
                }

                EntryActions.Add(
                    new EntryActionBehavior.Async((t, args) =>
                {
                    if (t.Trigger.Equals(trigger))
                    {
                        return(action(t, args));
                    }

                    return(TaskResult.Done);
                },
                                                  entryActionDescription));
            }
Esempio n. 6
0
        /// <summary>
        /// Constructs a new instance of State.
        /// </summary>
        /// <param name="stateInfo">The state to be represented.</param>
        public State(StateInfo stateInfo)
        {
            NodeName  = stateInfo.UnderlyingState.ToString();
            StateName = stateInfo.UnderlyingState.ToString();

            // Only include entry actions that aren't specific to a trigger
            foreach (var entryAction in stateInfo.EntryActions)
            {
                if (entryAction.FromTrigger == null)
                {
                    EntryActions.Add(entryAction.Method.Description);
                }
            }

            foreach (var exitAction in stateInfo.ExitActions)
            {
                ExitActions.Add(exitAction.Description);
            }
        }
Esempio n. 7
0
 public void AddEntryAction(TTrigger trigger, Action <Transition, object[]> action, Reflection.InvocationInfo entryActionDescription)
 {
     EntryActions.Add(new EntryActionBehavior.SyncFrom <TTrigger>(trigger, action, entryActionDescription));
 }
 public static void EntryActionsAddRaiseAction(EntryActions entryActions, RaiseAction raiseAction)
 => entryActions.AddAction(raiseAction);
 public static void EntryActionsAddAssignAction(EntryActions entryActions, AssignAction assignAction)
 => entryActions.AddAction(assignAction);
 public static void EntryActionsAddLogAction(EntryActions entryActions, LogAction logAction)
 => entryActions.AddAction(logAction);
 public static void StateNodeSetEntryActions(FinalStateNode stateNode, EntryActions entryActions)
 => stateNode.EntryActions = entryActions.Actions;
Esempio n. 12
0
 private void Setup()
 {
     EntryActions.Add(Hit);
 }