Example #1
0
        //Edit the amount of book
        public void EditAmount(int bookId, int bookAmount)
        {
            int          user_id   = Convert.ToInt32(Session["user_id"]);
            CART         cart_temp = db.CART.Where(u => u.USER_ID == user_id).FirstOrDefault();
            CART_INCLUDE book_temp = db.CART_INCLUDE.Where(u => u.USER_ID == user_id).Where(u => u.BOOK_ID == bookId).FirstOrDefault();
            BOOK         book      = db.BOOK.Find(bookId);
            decimal      delta     = (decimal)bookAmount - (decimal)book_temp.QUANTITY;

            cart_temp.QUANTITY    += delta;
            cart_temp.TOTAL_PRICE += delta * book.PRICE;
            book_temp.QUANTITY     = bookAmount;
            book_temp.TOTAL_PRICE  = book.PRICE * bookAmount;

            db.SaveChanges();
        }
Example #2
0
        //Remove book
        public void RemoveBook(int bookId)
        {
            int          user_id   = Convert.ToInt32(Session["user_id"]);
            CART_INCLUDE book_temp = db.CART_INCLUDE.Where(u => u.USER_ID == user_id).Where(u => u.BOOK_ID == bookId).FirstOrDefault();
            CART         cart_temp = db.CART.Where(u => u.USER_ID == user_id).FirstOrDefault();

            //Judge whether the cart is empty
            if (cart_temp.QUANTITY != book_temp.QUANTITY)
            {
                cart_temp.QUANTITY -= book_temp.QUANTITY;
            }
            else
            {
                db.CART.Remove(cart_temp);
            }
            db.CART_INCLUDE.Remove(book_temp);
            db.SaveChanges();
        }
Example #3
0
        public ActionResult addCart(int ID)
        {
            int times = 1;
            int price = db.Database.SqlQuery <int>("select PRICE from BOOK where ID=" + ID.ToString()).FirstOrDefault();
            int user_id;

            if (Session["user_id"] != null)
            {
                user_id = Convert.ToInt32(Session["user_id"]);
            }
            else
            {
                return(Redirect("~/Home/Login"));
            }
            int num = db.Database.SqlQuery <int>("select QUANTITY from CART_INCLUDE where BOOK_ID=" + ID.ToString() + " and USER_ID=" + user_id.ToString()).FirstOrDefault(); //当前购买该书数量

            if (num == 0)                                                                                                                                                     //目前
            {
                CART_INCLUDE temp1 = new CART_INCLUDE();
                temp1.USER_ID     = user_id;
                temp1.BOOK_ID     = ID;
                temp1.QUANTITY    = times;
                temp1.TOTAL_PRICE = price * times;
                db.CART_INCLUDE.Add(temp1);
            }
            else
            {
                var temp = from u in db.CART_INCLUDE
                           where u.BOOK_ID == ID && u.USER_ID == user_id
                           select u;
                temp.FirstOrDefault().QUANTITY    += times;
                temp.FirstOrDefault().TOTAL_PRICE += price * times;
            }
            int cart_num = db.Database.SqlQuery <int>("select count(*) from CART where USER_ID=" + user_id.ToString()).FirstOrDefault(); //当前用户购物车记录

            if (cart_num == 0)                                                                                                           //购物车为空
            {
                CART temp2 = new CART();
                temp2.USER_ID    = user_id;
                temp2.QUANTITY   = times;
                temp2.TIME_START = DateTime.Now.ToString();
                int cost = 15 - 3 * times;
                if (cost < 0)
                {
                    cost = 0;
                }                          //计算邮费
                temp2.POST_COST   = cost;
                temp2.TOTAL_PRICE = times * price;
                db.CART.Add(temp2);
            }
            else//购物车不为空
            {
                var result = from u in db.CART
                             where u.USER_ID == user_id
                             select u;

                result.FirstOrDefault().QUANTITY  += times;
                result.FirstOrDefault().TIME_START = DateTime.Now.ToString();
                int cost = 15 - 3 * Convert.ToInt32(result.FirstOrDefault().QUANTITY);
                if (cost < 0)
                {
                    cost = 0;
                }
                result.FirstOrDefault().POST_COST = cost;
            }
            db.SaveChanges();
            return(Redirect("Index?ID=" + ID.ToString()));
        }