예제 #1
0
        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
            }));
        }
예제 #2
0
        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"
            });
        }
예제 #3
0
        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));
        }