/// <summary> /// Main function! /// </summary> /// <returns></returns> public CalculModel Calculate(CalculModel arguments) { Result result; switch (arguments.OperationName) { //addition case "Сложение": result = Logic.Operator.Plus(arguments.Arg1, arguments.Arg2); break; //subtraction case "Вычитание": result = Logic.Operator.Minus(arguments.Arg1, arguments.Arg2); break; //multiplication case "Умножение": result = Logic.Operator.Multi(arguments.Arg1, arguments.Arg2); break; //division case "Деление": result = Logic.Operator.Div(arguments.Arg1, arguments.Arg2); break; default: result = new Result { Success = false }; break; } //если вычисление не удалось - возвращаем null if (result.Success == false) return null; //если удалось возвращаем число arguments.Result = result.Number; return arguments; }
/// <summary> /// Сохраняет информацию в лог /// </summary> /// <param name="arguments"></param> /// <returns></returns> public Task <bool> SaveToLog(CalculModel arguments) { //Преобразовывает выражение в строку //и записывает информацию в хранилище в отдельном потоке return(Task.Factory.StartNew(() => _repository.Add(OperList.CalculString(arguments.Arg1.ToString(), arguments.Arg1.ToString(), arguments.Result.ToString(), arguments.OperationName)))); }
/// <summary> /// Проверяет форму на корректность данных /// </summary> /// <returns>если форма корректа, то возвращает данные для расчета</returns> public CalculModel ValidateInput() { CalculModel calculModel = new CalculModel(); bool result = true; string message = string.Empty; //not empty if (TextBoxArg1.Text == String.Empty & TextBoxArg2.Text == String.Empty) { message = message + "Все поля должны быть заполнены\n"; result = false; } //incorrect number try { calculModel.Arg1 = int.Parse(TextBoxArg1.Text); } catch (Exception) { message = message + "Недопустимое значение первого аргумента\n"; result = false; } try { calculModel.Arg2 = int.Parse(TextBoxArg2.Text); } catch (Exception) { message = message + "Недопустимое значение второго аргумента\n"; result = false; } //message if (result == false) { MessageBox.Show(message); return(null); } return(calculModel); }
/// <summary> /// Main function! /// </summary> /// <returns></returns> public CalculModel Calculate(CalculModel arguments) { Result result; switch (arguments.OperationName) { //addition case "Сложение": result = Logic.Operator.Plus(arguments.Arg1, arguments.Arg2); break; //subtraction case "Вычитание": result = Logic.Operator.Minus(arguments.Arg1, arguments.Arg2); break; //multiplication case "Умножение": result = Logic.Operator.Multi(arguments.Arg1, arguments.Arg2); break; //division case "Деление": result = Logic.Operator.Div(arguments.Arg1, arguments.Arg2); break; default: result = new Result { Success = false }; break; } //если вычисление не удалось - возвращаем null if (result.Success == false) { return(null); } //если удалось возвращаем число arguments.Result = result.Number; return(arguments); }
/// <summary> /// Проверяет форму на корректность данных /// </summary> /// <returns>если форма корректа, то возвращает данные для расчета</returns> public CalculModel ValidateInput() { CalculModel calculModel = new CalculModel(); bool result = true; string message = string.Empty; //not empty if (TextBoxArg1.Text == String.Empty & TextBoxArg2.Text == String.Empty) { message = message + "Все поля должны быть заполнены\n"; result = false; } //incorrect number try { calculModel.Arg1 = int.Parse(TextBoxArg1.Text); } catch (Exception) { message = message + "Недопустимое значение первого аргумента\n"; result = false; } try { calculModel.Arg2 = int.Parse(TextBoxArg2.Text); } catch (Exception) { message = message + "Недопустимое значение второго аргумента\n"; result = false; } //message if (result == false) { MessageBox.Show(message); return null; } return calculModel; }