示例#1
0
        // 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()));
        }
示例#2
0
        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());
        }