/// <summary> /// Операция записи в лог /// </summary> /// <param name="model"></param> /// <returns></returns> public bool AddRecordAsync(CalculViewModel model) { //Пять секунд спокойствия //Task.Delay(5000); //Преобразуем операцию в строку лога и записываем в хранилище return(repository.Add(OperList.CalculString(model.Argument1, model.Argument2, model.Result, model.selectedOperator))); }
public CalculViewModel AddResult(CalculViewModel model) { Result resultResult; string resultString; int arg1, arg2; //Проверка корректности значений //arg1 if (!int.TryParse(model.Argument1, out arg1)) { model.Result = "Неудачен первый аргумент"; return(model); } //arg2 if (!int.TryParse(model.Argument2, out arg2)) { model.Result = "Неудачен второй аргумент"; return(model); } //производим соответствующие вычисления switch (model.selectedOperator) { //addition case "Сложение": resultResult = Operator.Plus(arg1, arg2); break; //subtraction case "Вычитание": resultResult = Operator.Minus(arg1, arg2); break; //multiplication case "Умножение": resultResult = Operator.Multi(arg1, arg2); break; //division case "Деление": resultResult = Operator.Div(arg1, arg2); break; default: resultResult = new Result { Success = false }; break; } //если успешно - меняем модель (добавляем информацию о результате расчета), если неудачно - информируем model.Result = resultResult.Success ? resultResult.Number.ToString() : "Неудачен результат расчета"; return(model); }
/// <summary> /// Записываем в лог в другом потоке /// </summary> /// <param name="model"></param> /// <returns></returns> public Task <bool> AddRecord(CalculViewModel model) { Task <bool> task = Task.Factory.StartNew(() => AddRecordAsync(model)); return(task); }