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); }
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()); }
public void RequestParameters_GetMissingParameterValue_Exception() { var collection = new NameValueCollection(); var strValue = RequestParametersHandler.GetRequestParameter <string>(collection, WebRequestParamNames.CustomerEmail); Assert.AreEqual(strValue, null); }
// // 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))); }
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); }
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); }
public ActionResult Search() { var searchText = RequestParametersHandler.GetRequestParameter <String>(this.Request.Params, WebRequestParamNames.SearchText) ?? String.Empty; return(View("Main", PrepareOrderDetailsBySearch(searchText))); }
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()); }