public ActionResult Index(string operationType, string operation, string FirstArgument, string SecondArgument) { String result; try { var validator = new Validator(); switch (operationType) { case "oneArgument": var argument = validator.ValidateNumber(FirstArgument); var calculator = OneArgmumentFactory.CreateCalculator(operation); result = Convert.ToString(calculator.Calculate(argument)); break; case "twoArguments": var firstArgument = validator.ValidateNumber(FirstArgument); var secondArgument = validator.ValidateNumber(SecondArgument); var calculator2 = TwoArgmumentFactory.CreateCalculator(operation); result = Convert.ToString(calculator2.Calculate(firstArgument, secondArgument)); break; case "order": var array = validator.ValidateArray(FirstArgument); var calculator3 = ArraySortFactory.CreateCalculator(operation); calculator3.Calculate(array); result = ""; for (Int16 i = 0; i < array.Length; i++) { result += Convert.ToString(array[i]); result += ", "; } break; default: result = "Undefined operation"; break; } } catch (InvalidOperationException) { result = "Error: second argument is empty"; } catch (Exception ex) { result = ex.Message; } TempData["Result"] = new Dictionary<string, object> { { "result", result } }; return RedirectToAction("Result"); }
/// <summary> /// Event and exception handler for array sorting functoins /// </summary> /// <param name="sender">Pressed button name</param> private void SortArray(object sender, EventArgs e) { try { if (FirstValue.Text.Equals("")) { throw new Exception("Input field is empty"); } var validator = new Validator(); double[] argument = validator.ValidateArray(FirstValue.Text); string operation = ((Button) sender).Name; var op = ArraySortFactory.CreateCalculator(operation); op.Calculate(argument); Result.Text = ""; for (Int16 i = 0; i < argument.Length; i++) { Result.Text += Convert.ToString(argument[i]); Result.Text += ", "; } } catch (Exception ex) { MessageBox.Show(ex.Message, "You are a clayfish", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }