Beispiel #1
0
 /// <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)));
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        /// <summary>
        /// Записываем в лог в другом потоке
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public Task <bool> AddRecord(CalculViewModel model)
        {
            Task <bool> task = Task.Factory.StartNew(() => AddRecordAsync(model));

            return(task);
        }