コード例 #1
0
        private IEnumerable <Group> PrepareCatalogGeneral(int?groupId, int?subgroupId, int?merchandiseId, string searchText)
        {
            #region Извлечь из веб-запроса необходимые параметры

            var sortField = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.SortField) ?? String.Empty;
            var sortOrder = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.SortOrder) ?? String.Empty;
            var page      = String.IsNullOrWhiteSpace(searchText) ? RequestParametersHandler.GetRequestParameter <int>(this.Request.Params, WebRequestParamNames.Page) : 1;

            #endregion

            // Извлечь из хранилища товар в соответствии с выбранной категорией (и с учетом поиска)
            Group    group    = null;
            Subgroup subgroup = null;
            IEnumerable <Merchandise> merchandises =
                String.IsNullOrWhiteSpace(searchText) ?
                this.service.GetMerchandises(groupId, subgroupId, merchandiseId, out group, out subgroup) :
                this.service.GetMerchandisesBySearch(groupId, subgroupId, searchText);

            // Сортировка
            this.service.Sort(ref merchandises, sortField, sortOrder);

            // Paging
            ApplyPagging(merchandises, page);

            // Построение строки навигации
            BuildNavigatioinPath(group, subgroup, sortField, sortOrder, searchText);

            // Подготовка информации по скидкам и ценам
            PrepareDiscountsInformation();

            // Инициализация параметров View
            SetViewParams(groupId, subgroupId, merchandiseId, sortField, sortOrder, searchText);

            return(this.service.Groups);
        }
コード例 #2
0
ファイル: OrderController.cs プロジェクト: juryger/altexweb
        public ActionResult Update()
        {
            int    merchandiseId, orderAmount;
            string orderComment;

            // прочитать из Cookie идентификатор клиента
            var customerId = CookieHandler.GetCookieValue <String>(this.Request.Cookies, this.Response, CookieNames.CustomerId, Guid.NewGuid().ToString(), DateTime.Now.AddYears(1));

            #region Прочитать параметры POST-запроса

            if (this.Request.Params.Count == 0)
            {
                ViewBag.ResponseMessage = "error: В запросе не переданы обязательные параметры заказа.";
                return(View());
            }

            merchandiseId = RequestParametersHandler.GetRequestParameter <int>(this.Request.Params, WebRequestParamNames.MerchandiseId);
            orderAmount   = RequestParametersHandler.GetRequestParameter <int>(this.Request.Params, WebRequestParamNames.OrderAmount);
            orderComment  = RequestParametersHandler.GetRequestParameter <string>(this.Request.Params, WebRequestParamNames.OrderComment) ?? String.Empty;

            #endregion

            // Обновить заказ в БД
            ViewBag.ResponseMessage = this.service.UpdateMerchandiseInOrder(customerId, merchandiseId, orderAmount, orderComment);

            return(View());
        }
コード例 #3
0
ファイル: CatalogTest.cs プロジェクト: juryger/altexweb
        public void RequestParameters_GetMissingParameterValue_Exception()
        {
            var collection = new NameValueCollection();
            var strValue   = RequestParametersHandler.GetRequestParameter <string>(collection, WebRequestParamNames.CustomerEmail);

            Assert.AreEqual(strValue, null);
        }
コード例 #4
0
        //
        // GET: /Catalog/Main/id/id2/id3
        public ActionResult Main(int?id, int?id2, int?id3)
        {
            var searchText = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.SearchText) ?? String.Empty;

            if (!String.IsNullOrWhiteSpace(searchText))
            {
                return(View(PrepareCatalogBySearch(id, id2, searchText)));
            }
            return(View(PrepareCatalog(id, id2, id3)));
        }
コード例 #5
0
ファイル: CatalogTest.cs プロジェクト: juryger/altexweb
        public void RequestParameters_GetConcreteParametersValues()
        {
            var collection = new NameValueCollection();

            collection.Add(WebRequestParamNames.CustomerEmail, "*****@*****.**");
            var strValue = RequestParametersHandler.GetRequestParameter <string>(collection, WebRequestParamNames.CustomerEmail);

            Assert.AreEqual(strValue, "*****@*****.**");

            collection.Add(WebRequestParamNames.MerchandiseId, "99");
            var intValue = RequestParametersHandler.GetRequestParameter <int>(collection, WebRequestParamNames.MerchandiseId);

            Assert.AreEqual(intValue, 99);
        }
コード例 #6
0
ファイル: CatalogTest.cs プロジェクト: juryger/altexweb
        public void RequestParameters_GetDefaultValues()
        {
            var collection = new NameValueCollection();

            var strValue = RequestParametersHandler.GetRequestParameter <string>(collection, WebRequestParamNames.SearchText);

            Assert.AreEqual(strValue, null);

            var intValue = RequestParametersHandler.GetRequestParameter <int>(collection, WebRequestParamNames.Page);

            Assert.AreEqual(intValue, 1);

            strValue = RequestParametersHandler.GetRequestParameter <string>(collection, WebRequestParamNames.SortField);
            Assert.AreEqual(strValue, WebRequestParamDefaults.SortField);

            strValue = RequestParametersHandler.GetRequestParameter <string>(collection, WebRequestParamNames.SortOrder);
            Assert.AreEqual(strValue, WebRequestParamDefaults.SortOrder);
        }
コード例 #7
0
ファイル: OrderController.cs プロジェクト: juryger/altexweb
        public ActionResult Search()
        {
            var searchText = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.SearchText) ?? String.Empty;

            return(View("Main", PrepareOrderDetailsBySearch(searchText)));
        }
コード例 #8
0
ファイル: OrderController.cs プロジェクト: juryger/altexweb
        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());
        }