Esempio n. 1
0
        /// <summary>
        /// Feature:Number
        /// </summary>
        /// <param name="number">number</param>
        /// <returns>FrameUpdate</returns>
        public FrameUpdate AddNumber(char number)
        {
            Feature CurrentFeature = Feature.NUMBER;

            return(ThrowOrderException <FrameUpdate>(CurrentFeature, () =>
            {
                FrameUpdate frameUpdate = NumberMachine.AddNumber(number);

                //等號後輸入數字
                if (PreviousFeature == Feature.EQUAL)
                {
                    frameUpdate.RemoveLength = ExpUpdate.REMOVE_ALL;

                    //執行成功時記錄下這次的Cast
                    PreviousFeature = CurrentFeature;
                    return frameUpdate;
                }

                //backspace或clearerror之後的數字處理
                if ((PreviousFeature == Feature.BACKSPACE || PreviousFeature == Feature.CLEAR_ERROR) && NumberMachine.NumberField.Number == 0)
                {
                    frameUpdate.RemoveLength += 1;

                    //執行成功時記錄下這次的Cast
                    PreviousFeature = CurrentFeature;
                    return frameUpdate;
                }

                //執行成功時記錄下這次的Cast
                PreviousFeature = CurrentFeature;
                return frameUpdate;
            }));
        }
Esempio n. 2
0
        //以下新的
        public NumberUpdate AddNumber(char number)
        {
            Feature CurrentCast = Feature.NUMBER;

            return(CheckOrder <NumberUpdate>(CurrentCast, () =>
            {
                NumberUpdate successResponse;

                //等號後輸入數字
                if (PreviousCast == Feature.EQUAL)
                {
                    successResponse = NumberMachine.AddNumber(number);
                    successResponse.RemoveLength = Updates.REMOVE_ALL;
                    PreviousCast = CurrentCast;
                    return successResponse;
                }

                //backspace或clearerror之後的數字處理
                if ((PreviousCast == Feature.BACKSPACE || PreviousCast == Feature.CLEAR_ERROR) && NumberMachine.NumberField.Number == 0)
                {
                    successResponse = NumberMachine.AddNumber(number);
                    successResponse.RemoveLength += 1;
                    //執行成功時記錄下這次的Cast
                    PreviousCast = CurrentCast;
                    return successResponse;
                }

                successResponse = NumberMachine.AddNumber(number);
                //執行成功時記錄下這次的Cast
                PreviousCast = CurrentCast;

                return successResponse;
            }));
        }