Example #1
0
        public IActionResult Delete(CartItem cartItem)
        {
            var result = _cartItemService.Delete(cartItem);

            if (result.Success)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }
Example #2
0
        public async Task <ActionResult <CartItem> > DeleteCart([FromRoute] int id)
        {
            var result = await _cartItemService.Delete(id);

            if (result == null)
            {
                return(NotFound(new APIResponse(404, "Such an id not found")));
            }

            return(Ok(result));
        }
Example #3
0
        public async Task <IActionResult> Delete(Guid id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }
            try
            {
                var response = await _cartItemService.Delete(id);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #4
0
        public IActionResult UpdateCart(UpdateCartModel cartModel)
        {
            if (!cartModel.DiscountCoupon.IsNullEmptyOrWhiteSpace())
            {
                var discountStatus =
                    _cartService.SetDiscountCoupon(ApplicationEngine.CurrentUser.Id, cartModel.DiscountCoupon);
                if (discountStatus == DiscountApplicationStatus.Success)
                {
                    return(R.Success.Result);
                }
                else
                {
                    return(R.Fail.With("status", discountStatus).Result);
                }
            }
            else if (cartModel.RemoveCoupon)
            {
                _cartService.ClearDiscountCoupon(ApplicationEngine.CurrentUser.Id);
                return(R.Success.Result);
            }
            if (!cartModel.GiftCode.IsNullEmptyOrWhiteSpace())
            {
                //do nothing
            }
            if (cartModel.CartItemId.HasValue && cartModel.Quantity.HasValue)
            {
                //get the cart
                var cart = cartModel.IsWishlist
                    ? _cartService.GetWishlist(ApplicationEngine.CurrentUser.Id)
                    : _cartService.GetCart(ApplicationEngine.CurrentUser.Id);
                var cartItem = cart.CartItems.FirstOrDefault(x => x.Id == cartModel.CartItemId.Value);
                if (cartItem == null)
                {
                    return(R.Fail.Result);
                }

                //is it to remove it completely
                if (cartModel.Quantity.Value == 0)
                {
                    _cartItemService.Delete(cartItem);
                    return(R.Success.Result);
                }

                var product = _productService.Get(cartItem.ProductId);
                if (product == null)
                {
                    return(R.Fail.Result);
                }

                //reset shipping details
                cart.ShippingFee               = 0;
                cart.ShippingMethodName        = string.Empty;
                cart.ShippingMethodDisplayName = string.Empty;
                cart.ShippingOptionsSerialized = string.Empty;
                cart.SelectedShippingOption    = string.Empty;
                _cartService.Update(cart);

                IActionResult validationResult = null;
                if (!product.HasVariants)
                {
                    ValidateQuantityRange(cartModel.Quantity.Value, product, null, out validationResult);
                }
                //is the new quantity validated
                if (validationResult != null)
                {
                    return(validationResult);
                }
                //are we tracking?
                if (product.TrackInventory)
                {
                    if (!product.HasVariants)
                    {
                        //this shouldn't be hit
                        ValidateProductQuantity(product, out validationResult);
                    }
                    else
                    {
                        //get the variant
                        var variant = _productVariantService.Get(cartItem.ProductVariantId);
                        ValidateVariantQuantity(cartModel.Quantity.Value, variant, out validationResult);
                    }
                    if (validationResult != null)
                    {
                        return(validationResult);
                    }
                }
                cartItem.Quantity = cartModel.Quantity.Value;
                _cartService.UpdateCart(cart.UserId, cartItem);
                return(R.Success.Result);
            }

            return(R.Fail.Result);
        }
Example #5
0
 public void RemoveFromCart(int cartItemId, Transaction transaction = null)
 {
     _cartItemService.Delete(x => x.Id == cartItemId, transaction);
 }
Example #6
0
 public IActionResult Delete(int id)
 {
     _cartItemService.Delete(id);
     return(StatusCode((int)HttpStatusCode.NoContent));
 }