示例#1
0
        protected void UpdateState(State newState)
        {
            bool isPreviousStateSuccessfully = EndPreviusState(newState);

            if (!isPreviousStateSuccessfully)
            {
                string exMessage = string.Format("Can not make transition from CurrentState:{0} to NewState:{1}", CurrenState, newState);
                throw new System.InvalidOperationException(exMessage);
            }

            PreviousState = CurrenState;
            CurrenState   = newState;

            CurrenState.Begin();
        }