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