Esempio n. 1
0
        /// <summary>
        /// Prepare for Anglular addition or Subtraction.
        /// This method performs the following actions.
        /// 1. ClearResults Field.
        /// 2. Checks Input for errors.
        /// 3. Convert Null entries to zero and Create Angles if there is no input errors.
        /// 4. Performs addition or subtraction of angles according to operation parameter passed
        /// </summary>
        private async void AngleOperationPreparation(string operation)
        {
            INPUT_VALIDATION_FLAG inputFlag;

            ClearResults();

            // Check input for errors
            inputFlag = CheckAllInput();

            if (inputFlag == INPUT_VALIDATION_FLAG.INPUT_OK)
            {
                // Convert empty fields to zero
                ConvertNullToZero();

                // Create angle objects so we can do angular subtraction or addition
                CreateAngles();

                if (operation == "add")
                {
                    _result = _angle1.AddAngle(_angle2);
                }
                else
                {
                    _result = _angle1.SubtractAngle(_angle2);
                }
            }
            else
            {
                // Check for no entry of data
                if (inputFlag == INPUT_VALIDATION_FLAG.NO_INPUT_ENTERED)
                {
                    await _pageService.DisplayAlert("No Data Entered", "Please enter some data", "Ok");

                    return;
                }

                // Check for Numeric data errors
                if (inputFlag == INPUT_VALIDATION_FLAG.NON_NUMERICAL_DATA_ENTERED)
                {
                    await _pageService.DisplayAlert("Numerical Data Error", "Please enter Integer numerical data (No decimals)", "Ok");

                    return;
                }

                // Check for Degrees out of range  errors
                if (inputFlag == INPUT_VALIDATION_FLAG.NUMBER_OUT_OF_RANGE_DEGREES)
                {
                    await _pageService.DisplayAlert("Out of Range Error", "Please enter a value between 0 and 359 in the degrees field", "Ok");

                    return;
                }

                // Check for Degrees out of range  errors
                if (inputFlag == INPUT_VALIDATION_FLAG.NUMBER_OUT_OF_RANGE_MINUTES)
                {
                    await _pageService.DisplayAlert("Out of Range Error", "Please enter a value between 0 and 59 in the minutes field", "Ok");

                    return;
                }

                // Check for Degrees out of range  errors
                if (inputFlag == INPUT_VALIDATION_FLAG.NUMBER_OUT_OF_RANGE_SECONDS)
                {
                    await _pageService.DisplayAlert("Out of Range Error", "Please enter a value between 0 and 59 in the seconds field", "Ok");

                    return;
                }
            }
        }