public int deleteCart(CartUpdateDTO cartUpdate) { var cart = Session["cart"];//get key cart if (cart == null) { List <CartItemDTO> listCart = new List <CartItemDTO>(); string jsonCart = JsonConvert.SerializeObject(listCart); Session["cart"] = jsonCart; } else { List <CartItemDTO> listCart = JsonConvert.DeserializeObject <List <CartItemDTO> >(cart.ToString()); for (int i = 0; i < listCart.Count; i++) { if (listCart[i].MaSanPham == cartUpdate.MaSanPham) { listCart.Remove(listCart[i]); break; } } string jsonCart = JsonConvert.SerializeObject(listCart); Session["cart"] = jsonCart; } return(1); }
public int updateCart(CartUpdateDTO cartUpdate) { int tongtien = 0; var cart = Session["cart"];//get key cart if (cart == null) { List <CartItemDTO> listCart = new List <CartItemDTO>(); string jsonCart = JsonConvert.SerializeObject(listCart); Session["cart"] = jsonCart; } else { List <CartItemDTO> listCart = JsonConvert.DeserializeObject <List <CartItemDTO> >(cart.ToString()); for (int i = 0; i < listCart.Count; i++) { if (listCart[i].MaSanPham == cartUpdate.MaSanPham) { listCart[i].SoLuong = cartUpdate.SoLuong; break; } } foreach (var item in listCart) { tongtien += (Convert.ToInt32(item.Gia) * Convert.ToInt32(item.SoLuong)); } string jsonCart = JsonConvert.SerializeObject(listCart); Session["cart"] = jsonCart; } return(tongtien); }
public async Task <IActionResult> UpdateCart(int CartId, CartUpdateDTO cartUpdateDTO) { try { //check if cart id matched id requested if (cartUpdateDTO.CartId != null) { if (CartId != cartUpdateDTO.CartId) { return(BadRequest(new { ApiProblem = "Entity Id does not match requested Id." })); } } var cartIdExists = _context.Carts.Any(c => c.CartId == cartUpdateDTO.CartId); var cartNameExists = _context.Carts.Any(c => c.CartName == cartUpdateDTO.CartName); var tagAddressExists = _context.Carts.Any(c => c.TagAddress == cartUpdateDTO.TagAddress); //check if cartid does not exist if (!cartIdExists && cartUpdateDTO.CartId != null) { //add error message ModelState.AddModelError("CartId", "No cart found with given cart id."); } //check if CartName already exists if (cartNameExists) { //check if the cart is another cart var theCart = _context.Carts.Where(c => c.CartName == cartUpdateDTO.CartName).FirstOrDefault(); if (theCart.CartId != cartUpdateDTO.CartId) { //add error message ModelState.AddModelError("CartName", "CartName already exists."); } } //check if TagAddress already exists if (tagAddressExists) { //check if the cart is another cart var theCart = _context.Carts.Where(c => c.TagAddress == cartUpdateDTO.TagAddress).FirstOrDefault(); if (theCart.CartId != cartUpdateDTO.CartId) { //add error message ModelState.AddModelError("TagAddress", "TagAddress already exists."); } } //if model is not valid return error messages if (!ModelState.IsValid) { return(BadRequest(ModelState.ToDictionary(x => x.Key, x => x.Value.Errors.Select(e => e.ErrorMessage).ToArray()))); } //find cart var cart = await _context.Carts.FindAsync(CartId); //if site not found return error if (cart == null) { return(NotFound()); } //update cart cart.CartName = cartUpdateDTO.CartName; cart.TagAddress = cartUpdateDTO.TagAddress; //put cart try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) when(!CartExists(CartId)) { return(NotFound()); } return(NoContent()); } catch (NullReferenceException e) { //if exception is caught write to console and return error message Console.WriteLine("{0} Exception caught.", e); return(BadRequest(new { ApiProblem = "Invalid JSON format sent." })); } }