public async Task <IActionResult> RemoveFromCart([FromBody] RemoveFromCartModel removeFromCartModel) { var cartResponse = await cartServices.removeFromCartAsync(removeFromCartModel); if (cartResponse.Status == "Error") { return(StatusCode(StatusCodes.Status400BadRequest, cartResponse.Message)); } return(Ok(new { cartResponse.CartId, cartResponse.CartPrice, cartResponse.CartCount, cartResponse.CartProducts, cartResponse.Message })); }
public async Task <CartResponse> removeFromCartAsync(RemoveFromCartModel removeFromCartModel) { var cart = await appDb.Carts.FindAsync(removeFromCartModel.CartId); if (cart == null) { return(new CartResponse { Status = "Error", Message = "You must specify cart id" }); } var cartProduct = await appDb.CartProducts.FindAsync(cart.Id, removeFromCartModel.ProductId, removeFromCartModel.ProductVariationId); if (cartProduct == null) { return(new CartResponse { Status = "Error", Message = "Not found product with given id" }); } if (cartProduct.Quantity <= 1) { appDb.CartProducts.Remove(cartProduct); } else { cartProduct.Quantity--; } await appDb.SaveChangesAsync(); cart.TotalPrice = await getCartPriceAsync(cart.Id); await appDb.SaveChangesAsync(); var cartCount = await getCartProductsCountAsync(cart.Id); var cartProducts = await getCartProductsAsync(cart.Id); if (cartProducts == null) { appDb.Carts.Remove(cart); await appDb.SaveChangesAsync(); } return(new CartResponse { CartId = cart.Id, CartPrice = cart.TotalPrice, CartCount = cartCount, CartProducts = cartProducts, Status = "Success", Message = "Succesfully removed item from cart" }); }
public async Task <IActionResult> RemoveFromCart([FromBody] RemoveFromCartModel item) { var settings = new JsonSerializerSettings(); settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; CookieHelper helper = new CookieHelper(_accessor); string cookieId = helper.GetVisitorId(); int? uid = null; if (_signInManager.IsSignedIn(User)) { var user = await _userManager.GetUserAsync(User); uid = user.Id; } var result = _orderService.RemoveCartItem(cookieId, item.Id); return(Json(result, settings)); }