Esempio n. 1
0
        /// <summary>
        /// Esta es toda la lógica de la máquina de estados
        /// </summary>
        /// <param name="action">Qué acción aplicar sobre el estado actual.</param>
        /// <returns>True, si aplicó la acción; False si es una acción no válida.</returns>
        internal bool GoNext(Action action)
        {
            var trans = TransitionMatrix.FirstOrDefault(o => o.CurrentState == CurrentState && o.Action == action);

            if (trans == null)
            {
                return(false);
            }
            CurrentState = trans.NewState;
            return(true);
        }