/// <summary> /// Modify the product count in the shopping cart /// </summary> /// <param name="productID">要修改的购物车中的商品项的商品ID</param> /// <param name="amount">商品的最后数量</param> /// <returns>修改成功返回true,否则返回false</returns> public bool ModifyCartItem(int productID, decimal amount) { CartItem cartItem = cartItems.Find(p => p.ProductID == productID); if (cartItem == null) { SaledProductItem saledProduct = ProductManager.GetSaledProductByID(productID); if (saledProduct == null || (saledProduct.Product.Unit != "斤" && decimal.Round(amount) != amount)) { return(false); } CartItem pi = new CartItem { ProductID = productID, Product = saledProduct.Product, Amount = amount, UnitPrice = saledProduct.Price * saledProduct.Discount / 100 }; cartItems.Add(pi); return(true); } if (cartItem.Product.Unit != "斤" && decimal.Round(amount) != amount) { return(false); } if (amount <= 0) { cartItems.Remove(cartItem); } else { cartItem.Amount = amount; } return(true); }
/// <summary>用户写产品评论的处理 /// </summary> /// <param name="id">要编写评论的产品ID</param> /// <returns>编写评论的结果View</returns> public ActionResult PostComment(int id) { string content = Request["cnt"]; int level = 5; SolemartUser user = Session["user"] as SolemartUser; //if (user == null || user == MyUser.Anonymous) { // Response.Write("/login.aspx?ReturnUrl=" + Server.UrlEncode("/p/pd.aspx?pid=") + CurrentProduct.ProductID); //} if (Request["level"] == null || !int.TryParse(Request["level"], out level)) { return(Content("error")); } SaledProductItem CurrentProduct = ProductManager.GetSaledProductByID(id); if (ProductManager.CommentProduct(user.UserID, CurrentProduct.ProductID, (EvaluteGrade)level, content)) { var comm_json = new { Name = user.UserName, Time = DateTime.Now.ToLongDateString(), Level = level, Content = content, IsSuccess = true }; return(Json(comm_json)); } else { return(Json(new { IsSuccess = false, Message = "error" })); } }
/// <summary>显示产品详细内容的页面 /// </summary> /// <param name="id">要显示的产品的ID</param> /// <returns>产品详细页面</returns> public ActionResult Detail(int id) { Cart cart = (User as SolemartUser).Cart; CartItem item = cart.CartItems.FirstOrDefault(c => c.ProductID == id); if (item != null) { ViewBag.CartItem = item.Amount; } else { ViewBag.CartItem = 0; } string cacheKey = string.Format("product_{0}", id); ProductDetailViewModel model = null; if (CacheUtil.Exist(cacheKey)) { model = CacheUtil.Get <ProductDetailViewModel>(cacheKey); } else { SaledProductItem saleInfo = ProductManager.GetSaledProductByID(id); ProductItem product = ProductManager.GetProductWithBrandByID(id); List <ProductImageItem> images = ProductManager.GetProductNoLogoImage(id); int commentCount = ProductManager.GetProductCommentCount(id); string remainAmountString = string.Empty; if (product.Unit == "斤") { remainAmountString = string.Format("{0}", product.StockCount - product.ReserveCount); } else { remainAmountString = string.Format("{0:d}", (int)(product.StockCount - product.ReserveCount)); } model = new ProductDetailViewModel { ProductID = id, ProductName = product.ProductName, ProductDescription = product.Description, Price = saleInfo.Price, Unit = product.Unit, Discount = saleInfo.Discount, SpecialFlag = saleInfo.SpecialFlag, RemainAmount = remainAmountString, BrandDescription = product.Brand.Description, BrandLogo = product.Brand.BrandLogo, BrandUrl = product.Brand.BrandUrl, BrandName = product.Brand.ZhName, CommentCount = commentCount, Images = images }; CacheUtil.Add <ProductDetailViewModel>(cacheKey, model, 600); } return(View(model)); }
/// <summary> /// Put on the product for saling. /// </summary> /// <param name="newSaledProductItem">The product put to saling.</param> /// <returns>return true if success, or return false</returns> public static bool PutToSaling(SaledProductItem newSaledProductItem) { using (SolemartDBContext context = new SolemartDBContext()) { SaledProductItem oldSaledProductItem = context.SaledProductItems.FirstOrDefault(spi => (spi.ProductID == newSaledProductItem.ProductID)); if (oldSaledProductItem != null) { oldSaledProductItem.Price = newSaledProductItem.Price; oldSaledProductItem.Discount = newSaledProductItem.Discount; oldSaledProductItem.SpecialFlag = newSaledProductItem.SpecialFlag; } else { context.SaledProductItems.Add(newSaledProductItem); } if (context.SaveChanges() > 0) { if (allSaledProducts != null) { allSaledProducts.Clear(); } return(true); } return(false); } }
/// <summary> /// Put the product for saling /// </summary> /// <param name="id">The product id</param> /// <returns>商品上架的结果</returns> public ActionResult PutToSaling(SaledProductItem saledProduct) { if (ProductManager.PutToSaling(saledProduct)) { return(Content(WebResult <string> .SuccessResult.ResponseString)); } return(Content(WebResult <string> .NormalErrorResult.ResponseString)); }
public ActionResult AddToFovarite(int productID) { SolemartUser user = User as SolemartUser; SaledProductItem CurrentProduct = ProductManager.GetSaledProductByID(productID); if (user != null && !user.IsAnonymous && CurrentProduct != null) { if (UserManager.AddNewFavorite(user.UserID, CurrentProduct.ProductID)) { return(Content("ok")); } } return(Content("error")); }
/// <summary> /// Add a product to shopping cart /// </summary> /// <param name="productID">The product want to add to shopping cart</param> /// <param name="count">该商品的数量</param> public void AddToCart(int productID, int count) { CartItem cartItem = cartItems.Find(p => p.ProductID == productID); if (cartItem != null) { cartItem.Amount += count; } else { SaledProductItem saledProduct = ProductManager.GetSaledProductByID(productID); if (saledProduct == null) { throw new ArgumentException(string.Format("该ID={0}的商品不存在", saledProduct.ProductID)); } CartItem pi = new CartItem { ProductID = productID, Product = saledProduct.Product, Amount = count, UnitPrice = saledProduct.Price * saledProduct.Discount / 100 }; cartItems.Add(pi); } }
/// <summary> /// Drawback the recommend product. /// </summary> /// <param name="productID">The product id</param> /// <returns></returns> public static bool DrawbackTop(int productID) { using (SolemartDBContext context = new SolemartDBContext()) { SaledProductItem saledProductItem = context.SaledProductItems.Find(productID); if (saledProductItem != null) { saledProductItem.SetTop = false; if (context.SaveChanges() > 0) { if (allSaledProducts != null) { allSaledProducts.Clear(); } return(true); } } return(false); } }
/// <summary> /// Take off the product for saling /// </summary> /// <param name="productID">要下架的商品的ID</param> /// <returns>是否下架成功</returns> public static bool TakeOffSaling(int productID) { using (SolemartDBContext context = new SolemartDBContext()) { SaledProductItem saledProductItem = context.SaledProductItems.Find(productID); if (saledProductItem != null) { context.SaledProductItems.Remove(saledProductItem); if (context.SaveChanges() > 0) { if (allSaledProducts != null) { allSaledProducts.Clear(); } return(true); } } return(false); } }
/// <summary> /// The user comment the product /// </summary> /// <param name="id">要评论的商品的ID</param> /// <returns>评论结果</returns> public ActionResult MakeComment(int id) { SaledProductItem CurrentProduct = ProductManager.GetSaledProductByID(id); string content = Request["cnt"]; int level = 5; if (Request["level"] == null || !int.TryParse(Request["level"], out level) || CurrentProduct == null) { return(Content("error")); } SolemartUser user = User as SolemartUser; if (ProductManager.CommentProduct(user.UserID, CurrentProduct.ProductID, (EvaluteGrade)level, content)) { var comm_json = new { Name = user.UserName, Time = DateTime.Now.ToLongDateString(), Level = level, Content = content }; return(Json(comm_json)); } else { return(Content("error")); } }