protected void add_transition(string eventName, string targetStateName)
        {
            if (CurrentState != null)
            {
                var transition = new TransitionDef
                {
                    ParentState   = CurrentState,
                    TriggerEvent  = eventName,
                    TargetState   = targetStateName,
                    RolesRequired = new List <string>()
                };

                PendingTransitions.Add(transition);
                CurrentEvent = StateMachine.FindEventByName(eventName);
            }
        }
 protected void add_transition(string eventName, string targetStateName, string rolesRequired)
 {
     if (CurrentState != null)
     {
         var transition = new TransitionDef
         {
             ParentState   = CurrentState,
             TriggerEvent  = eventName,
             TargetState   = targetStateName,
             RolesRequired = new List <string>()
         };
         foreach (string role in rolesRequired.ToString().Replace("(", "").Replace(")", "").Split(new char[] { ',' }))
         {
             transition.RolesRequired.Add(role);
         }
         PendingTransitions.Add(transition);
         CurrentEvent = StateMachine.FindEventByName(eventName);
     }
 }