//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(); }
//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(); }
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())); }