Example #1
0
        /// <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);
        }
Example #2
0
        /// <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" }));
            }
        }
Example #3
0
        /// <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));
        }
Example #4
0
        /// <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);
            }
        }
Example #5
0
        /// <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));
        }
Example #6
0
        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"));
        }
Example #7
0
        /// <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);
            }
        }
Example #8
0
        /// <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);
            }
        }
Example #9
0
        /// <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);
            }
        }
Example #10
0
        /// <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"));
            }
        }