public CartViewModel AddToCart(CartViewModel cartModel, AddToCartViewModel addToCartModel)
        {
            var cartProduct = cartModel.Products.SingleOrDefault(p => p.ProductId == addToCartModel.ProductId);
            var product     = _productWebService.GetProductById(addToCartModel.ProductId);

            bool productQuantityUpdated = false;

            if (!_productWebService.ProductQuantityIsOk(addToCartModel.ProductId, addToCartModel.SizeId))
            {
                return(null);
            }
            else
            {
                productQuantityUpdated = _productWebService.ReduceProductQuantity(addToCartModel.ProductId, addToCartModel.SizeId, 1);
            }

            if (!productQuantityUpdated)
            {
                return(null);
            }

            if (cartProduct == null)
            {
                //product not found in cart, add new
                cartModel.Products.Add(new ProductItemViewModel()
                {
                    ProductId = addToCartModel.ProductId,
                    Brand     = product.Brand.BrandName,
                    Quantity  = 1,
                    Size      = product.Sizes.SingleOrDefault(p => p.Id == addToCartModel.SizeId).Size,
                    Price     = product.Price
                });
            }
            else
            {
                var size = product.Sizes.SingleOrDefault(p => p.Id == addToCartModel.SizeId);

                if (size == null)
                {
                    //product found but size not found, add new
                    cartModel.Products.Add(new ProductItemViewModel()
                    {
                        ProductId = addToCartModel.ProductId,
                        Brand     = product.Brand.BrandName,
                        Quantity  = 1,
                        Size      = product.Sizes.SingleOrDefault(p => p.Id == addToCartModel.SizeId).Size,
                        Price     = product.Price
                    });
                }
                else if (addToCartModel.SizeId == size.Id)
                {
                    cartProduct.Quantity++;
                }
            }

            return(cartModel);
        }