/// <summary>
 /// Execution of the action with parameters from state machine push
 /// </summary>
 /// <param name="TransitionParameters">Parameters from state machine push <see cref="ISMService.Push(IStateMachine, ISMParameters)"/></param>
 public void Invoke(ISMParameters TransitionParameters)
 {
     if (NestedAction != null)
     {
         NestedAction.Invoke(Parameters, TransitionParameters);
     }
 }
        /// <summary>
        /// Execution of the action with parameters from state machine push
        /// </summary>
        /// <param name="transition">Transition to which trigger belongs <see cref="ITransition"/></param>
        /// <param name="TransitionParameters">Parameters from state machine push <see cref="ISMService.Push(IStateMachine, ISMParameters)"/></param>
        public bool Invoke(ITransition transition, ISMParameters TransitionParameters)
        {
            if (NestedAction != null)
            {
                Log.Debug("trigger {0} for tansactions {1} is going to be executed".FormIt(NestedAction.GetType().ToString(), transition.Text));

                var result = NestedAction.Invoke(transition, Parameters, TransitionParameters);

                var inv = Inverted ? !result : result;

                Log.Debug("Trigger result is {0}".FormIt(inv));

                return(inv);
            }

            return(false);
        }