public AddUpdateCartDTO AddUpdateCart([FromBody] AddUpdateCartRequest addProductToCartRequest)
        {
            var responseJson = new AddUpdateCartDTO();
            var serverAnswer = _cartService.AddToCart(addProductToCartRequest);

            if (addProductToCartRequest.Quantity != 0)
            {
                if (serverAnswer.HasAdded)
                {
                    responseJson.productId = addProductToCartRequest.ProductId;
                    responseJson.cartId    = addProductToCartRequest.CartId;
                    responseJson.quantity  = addProductToCartRequest.Quantity;
                    responseJson.status    = Status.Success;
                }
                else
                {
                    responseJson.validationErrors = serverAnswer.ValidationErrors;
                    responseJson.dbErrors         = serverAnswer.DBErrors;
                    responseJson.status           = Status.Failed;
                }
            }
            else
            {
                RemoveProductFromCart(new RemoveProductFromCartRequest {
                    CartId = addProductToCartRequest.CartId, ProductId = addProductToCartRequest.ProductId
                });
            }

            return(responseJson);
        }
        public AddUpdateCartResponse AddToCart(AddUpdateCartRequest request)
        {
            var productFindRequest = new ProductFindRequest
            {
                ProductId = request.ProductId
            };

            var cartFindRequest = new CartFindRequest
            {
                CartId = request.CartId
            };

            var product = _productService.FindById(productFindRequest).FoundProduct;
            var cart    = FindCartById(cartFindRequest).Cart;

            var validationErrors = _cartValidation.AddProductToCartValidation.Validate(request);
            var DBErrors         = new List <DatabaseErrors>();

            var response = new AddUpdateCartResponse();

            if (validationErrors.Count != 0)
            {
                response.ValidationErrors = validationErrors;
            }
            else
            {
                try
                {
                    response.HasAdded = _cartRepository.ToCart(product, cart, request.Quantity);
                }
                catch (UniqueKeyViolationException)
                {
                    DBErrors.Add(DatabaseErrors.DB_DUPLICATE_ENTRY);
                }
                response.DBErrors = DBErrors;
            }
            return(response);
        }