コード例 #1
0
        public IHttpActionResult AddItemToCart([Bind(Include = "Code,Quantity")] CodeAndQuantityViewModel codeAndQuantityViewModel)
        {
            var code     = codeAndQuantityViewModel.Code;
            var quantity = codeAndQuantityViewModel.Quantity;
            //Validation

            var variantRef = _referenceConverter.GetContentLink(code);

            if (variantRef == null || variantRef == ContentReference.EmptyReference)
            {
                return(Ok(new { hasError = true, message = "some message" }));
            }

            var cart = _cartRepository.LoadCart(true);

            if (cart == null)
            {
                return(Ok(new { hasError = true, message = "Cart misssing" }));
            }

            try
            {
                cart.AddItemToCart(code, quantity);
                _shoppingCartValidator.ValidateCartItems(cart.ShoppingCart);
                _cartRepository.Save(cart);
            }
            catch (System.Exception)
            {
                return(Ok(new { hasError = true, message = "Item could not be added" }));
            }

            MiniCartViewModel miniCart = new MiniCartViewModel {
                Quantity = quantity
            };

            return(Ok(new { miniCart }));
        }