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()); }
// 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())); }
// GET: /Order/CustomerConfirmation public ActionResult CustomerConfirmation() { // прочитать из Cookie идентификатор клиента var customerId = CookieHandler.GetCookieValue <String>(this.Request.Cookies, this.Response, CookieNames.CustomerId, Guid.NewGuid().ToString(), DateTime.Now.AddYears(1)); // Проверить, что имеется активный заказ var orderId = this.service.GetActiveOrderId(customerId); if (orderId <= 0) { ViewBag.ErrorMessage = "Произошла ошибка - не удается найти активный заказ. Перейдите в раздел 'Каталог' и добавьте необходимые товары в заказ."; } return(View(this.service.GetCustomer(customerId))); }
private void ApplyPagging(IEnumerable <Merchandise> merchandises, int currentPage) { if (merchandises != null && merchandises.Count() > 0) { int pageSize = CookieHandler.GetCookieValue <int>(this.Request.Cookies, this.Response, CookieNames.RecordsOnPage, 20, DateTime.Now.AddYears(1)); var pagingList = merchandises.ToPagedList(currentPage, pageSize); ViewBag.Page = currentPage; ViewBag.PageCount = pagingList.PageCount; ViewBag.Merchandises = pagingList; } else { ViewBag.Page = 0; ViewBag.PageCount = 0; ViewBag.Merchandises = new List <Merchandise>().ToPagedList(1, 1); } }
/// <summary> /// 执行控制器中方法前先调用该方法 /// </summary> /// <param name="filterContext"></param> protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); string sessionId = CookieHandler.GetCookieValue("sessionId"); if (!string.IsNullOrEmpty(sessionId)) { var redis = new RedisHelper(0); var user = redis.StringGet <UserInfo>($"SESSION:{sessionId}"); if (user == null) { filterContext.Result = Content("<script type='text/javascript'>window.top.location='/Login/Index'; </script>"); } } else { filterContext.Result = Content("<script type='text/javascript'>window.top.location='/Login/Index'; </script>"); } }
private IEnumerable <OrderDetail> PrepareOrderDetailsGeneral(string searchText) { // Проверка наличия в Cookie Идентификатора клиента var customerId = CookieHandler.GetCookieValue <String>(this.Request.Cookies, this.Response, CookieNames.CustomerId, Guid.NewGuid().ToString(), DateTime.Now.AddYears(1)); // Проверка наличия открытого заказа var orderId = GetActiveOrderId(customerId); // Подготовить товары связанные с заказом PrepareOrderMerchandises(orderId, searchText); // Расчитать стоимость заказа CalculateOrderCosts(orderId); // Подготовить раздел навигации по сайту PrepareSiteMapNavigation(searchText); // Подготовка информации по скидкам и ценам PrepareDiscountsInformation(); return(this.service.GetActiveOrderItems(orderId)); }
// GET: Login public ActionResult Index() { string login_remember = CookieHandler.GetCookieValue("login_remember"); if (!string.IsNullOrEmpty(login_remember)) { login_remember = new AESCryptHandler().Decrypt(login_remember); JObject cookieInfo = JObject.Parse(login_remember); string cookie_id = cookieInfo["id"].ToString(); string cookie_name = cookieInfo["username"].ToString(); string cookie_pwd = cookieInfo["password"].ToString(); var user = UserInfoService.LoadEntities(u => u.Id.ToString() == cookie_id && u.UName == cookie_name && u.UPwd == cookie_pwd).FirstOrDefault(); if (user != null) { var redis = new RedisHelper(0); string sessionId = Guid.NewGuid().ToString(); redis.StringSet <UserInfo>($"SESSION:{sessionId}", user, TimeSpan.FromMinutes(20)); //弃用session,使用Redis解决session只能单机应用的局限 CookieHandler.SetCookie("sessionId", sessionId, null); return(Content("<script type='text/javascript'>window.top.location='/Home/Index'; </script>")); } } return(View()); }
private void SetViewParams(int?id, int?id2, int?id3, string sortField, string sortOrder, string searchText) { int pageSize; int showNavigation; int groupId = 0, subgroupId = 0; string title; #region Проверка наличия в Cookie требуемых параметров // Задать идентификатор клиента в Cookies (если отсутствует) CookieHandler.GetCookieValue <String>(this.Request.Cookies, this.Response, CookieNames.CustomerId, Guid.NewGuid().ToString(), DateTime.Now.AddYears(1)); // Количество записей на странице pageSize = CookieHandler.GetCookieValue <int>(this.Request.Cookies, this.Response, CookieNames.RecordsOnPage, 20, DateTime.Now.AddYears(1)); // Флаг указывающий на состояние области навигации (отображается или скрыто) showNavigation = CookieHandler.GetCookieValue <int>(this.Request.Cookies, this.Response, CookieNames.ShowNavigation, 1, DateTime.Now.AddYears(1)); #endregion #region Определение идентификатора подргруппы и группы по идентификатору товара if (!id3.HasValue) { if (id.HasValue) { groupId = id.Value; } if (id2.HasValue) { subgroupId = id2.Value; } } else { this.service.ClarifyGroupAndSubgroupIDs(id3.Value, out groupId, out subgroupId); } #endregion #region Конструирование полных URL-путей в зависимости от выбранного контекста StringBuilder contextCatalogPageUrl = new StringBuilder(CatalogPageUrl); if (id.HasValue) { contextCatalogPageUrl.Append(String.Format("/{0}", id.Value)); } if (id2.HasValue) { contextCatalogPageUrl.Append(String.Format("/{0}", id2.Value)); } #endregion #region Определение заголовка страницы в зависимости от выбранного контекста if (groupId > 0) { title = this.service.GetGroupTitle(groupId); if (subgroupId > 0) { title = String.Format("{0} - {1}", title, this.service.GetSubgroupTitle(subgroupId)); } } else { title = "Каталог"; } #endregion ViewBag.Title = title; ViewBag.GroupId = groupId; ViewBag.SubgroupId = subgroupId; ViewBag.CatalogPageUrl = CatalogPageUrl; ViewBag.ContextCatalogPageUrl = contextCatalogPageUrl.ToString(); ViewBag.SearchText = searchText; ViewBag.SortOrder = sortOrder; ViewBag.SortField = sortField; ViewBag.ShowNavigation = showNavigation; ViewBag.RecordsOnPageCookieName = CookieNames.RecordsOnPage; ViewBag.ShowNavigationCookieName = CookieNames.ShowNavigation; }
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()); }