/// <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; } } }