예제 #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));
 }
예제 #2
0
        /// <summary>
        /// Ajax en modifiant la quantite je recalcule les prix
        /// et je mets a jours la session
        /// </summary>
        /// <param name="id"></param>
        /// <param name="quantite"></param>
        /// <returns></returns>
        public IActionResult CalculPanier(int id, int quantite)
        {
            PanierSessionViewModel panierSession = deserialise();
            var             prod = _repo.FindOne(id);
            CalculViewModel cal  = new CalculViewModel();

            if (panierSession != null)
            {
                DetailCommande detail = panierSession.Cmd.DetailCommande.Where(p => p.Idproduit == id).FirstOrDefault();

                if (detail != null)
                {
                    detail.Quantite = quantite;
                }

                //Serialisation et MAJ session
                string jsonPanier1 = JsonSerializer.Serialize(
                    panierSession
                    );
                HttpContext.Session.SetString("Panier", jsonPanier1);

                panierSession.Cmd.Date = DateTime.Now.ToString("d");

                int    quantiteTotal1 = 0;
                double total          = 0;
                foreach (var d in panierSession.Cmd.DetailCommande)
                {
                    quantiteTotal1 += d.Quantite;
                    Produit prod1 = _repo.FindOne(d.Idproduit);
                    total += ssTotal(d, prod1);
                }

                panierSession.QuantiteAjoute = quantiteTotal1;

                //Serialisation et MAJ session
                string jsonPanier = JsonSerializer.Serialize(
                    panierSession
                    );
                HttpContext.Session.SetString("Panier", jsonPanier);

                cal = new CalculViewModel()
                {
                    ssTotal       = ssTotal(detail, prod),
                    Total         = total,
                    quantiteTotal = quantiteTotal1,
                    date          = panierSession.Cmd.Date
                };
            }
            return(new JsonResult(cal));
        }
예제 #3
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;
        }
예제 #4
0
        public ActionResult CalculationForm(CalculViewModel model)
        {
            if (ModelState.IsValid)
            {
                //Делаем расчет и добавляем результат в модель
                var calculService = new CalculService();
                model = calculService.AddResult(model);

                //Формируем запись для лога и пишем в хранилище
                var loggerService = new LoggerService(_repository);
                loggerService.AddRecord(model);
            }

            return View(model);
        }
예제 #5
0
        public ActionResult CalculationForm(CalculViewModel model)
        {
            if (ModelState.IsValid)
            {
                //Делаем расчет и добавляем результат в модель
                var calculService = new CalculService();
                model = calculService.AddResult(model);

                //Формируем запись для лога и пишем в хранилище
                var loggerService = new LoggerService(_repository);
                loggerService.AddRecord(model);
            }

            return(View(model));
        }
예제 #6
0
 /// <summary>
 /// Отображает основную форму для вычислений
 /// </summary>
 /// <returns></returns>
 public ActionResult CalculationForm()
 {
     var model = new CalculViewModel();
     return View(model);
 }
예제 #7
0
        /// <summary>
        /// Отображает основную форму для вычислений
        /// </summary>
        /// <returns></returns>
        public ActionResult CalculationForm()
        {
            var model = new CalculViewModel();

            return(View(model));
        }
예제 #8
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;
 }