Esempio n. 1
0
        public IHttpActionResult RemoveProductInCart(RemoveProductInCartRequest request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    string errorMsg = string.Empty;
                    errorMsg += string.Join(" ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));
                    return(BadRequest(errorMsg));
                }

                var product = _productModel.GetProduct(request.ProductId);
                if (product == null)
                {
                    return(BadRequest(MessageResource.UnavailableProduct));
                }

                var response = new CartTransactionResponse()
                {
                    UserCart          = _shoppingCartModel.RemoveProductInCart(request),
                    AvailableProducts = _productModel.GetAllProducts().ToList()
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Esempio n. 2
0
        public Cart RemoveProductInCart(RemoveProductInCartRequest request)
        {
            var userCart        = GetUserCart(request.UserId);
            var productToRemove = userCart.Products.Products.SingleOrDefault(x => x.Id == request.ProductId);

            if (productToRemove == null)
            {
                throw new Exception(MessageResource.ProductDoesNotExistInCart);
            }

            userCart.Products.Products.Remove(productToRemove); //Remove product in the usercart.
            userCart.UpdateCartComputations();
            UpdateUserCart(userCart);
            IncreaseProductQuantity(request.ProductId, productToRemove.Count); //Increase the products available quantity in the inventory.
            return(GetUserCart(request.UserId));
        }