// GET: /Order/Cancel public ActionResult Cancel() { // Проверка наличия в Cookie требуемых параметров - Идентификатор клиента var customerId = CookieHandler.GetCookieValue(this.Request.Cookies, this.Response, CookieNames.CustomerId, Guid.NewGuid().ToString(), DateTime.Now.AddYears(1)); this.service.CancelActiveOrder(customerId); CookieHandler.SetCookieValue <bool>(this.Response, CookieNames.IsOrderNotEmpty, false, DateTime.Now.AddDays(1)); return(View("Main", PrepareOrderDetails())); }
public ActionResult OrderConfirmation() { // прочитать из Cookie идентификатор клиента var customerId = CookieHandler.GetCookieValue <String>(this.Request.Cookies, this.Response, CookieNames.CustomerId, Guid.NewGuid().ToString(), DateTime.Now.AddYears(1)); // Проверить, что имеется активный заказ var orderId = GetActiveOrderId(customerId); if (orderId <= 0) { ViewBag.ErrorMessage = "Произошла ошибка - не удается найти активный заказ. Перейдите в раздел 'Каталог' и добавьте необходимые товары в заказ."; return(View()); } #region Прочитать параметры POST-запроса (данные о клиенте) и сохранить их в БД if (this.Request.Params.Count == 0) { ViewBag.ErrorMessage = "Произошла ошибка - в запросе не переданы обязательные параметры заказа."; return(View()); } var company = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.CustomerCompany) ?? String.Empty; if (String.IsNullOrEmpty(company)) { ViewBag.ErrorMessage = String.Format("Произошла ошибка - в POST-параметрах запроса не найден параметр с именем '{0}'.", WebRequestParamNames.CustomerCompany); return(View()); } var contactName = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.CustomerContactName) ?? String.Empty; var phone = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.CustomerPhoneNumber) ?? String.Empty; if (String.IsNullOrEmpty(phone)) { ViewBag.ErrorMessage = String.Format("Произошла ошибка - в POST-параметрах запроса не найден параметр с именем '{0}'.", WebRequestParamNames.CustomerPhoneNumber); return(View()); } var email = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.CustomerEmail) ?? String.Empty; if (String.IsNullOrEmpty(email)) { ViewBag.ErrorMessage = String.Format("Произошла ошибка - в POST-параметрах запроса не найден параметр с именем '{0}'.", WebRequestParamNames.CustomerEmail); return(View()); } var address = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.CustomerAddress) ?? String.Empty; var inn = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.CustomerINN) ?? String.Empty; #endregion this.service.ConfirmOrder(customerId, company, contactName, phone, email, address, inn); // сбросить флаг наличия товаров в заказе CookieHandler.SetCookieValue <bool>(this.Response, CookieNames.IsOrderNotEmpty, false, DateTime.Now.AddDays(1)); return(View()); }