public async Task <Cart> AddProduct(int id, [FromBody] Cart cart)
        {
            var data = await repository.AddProduct(id, cart);

            return(data);

            //var data = await context.CartProducts.FindAsync(id);
            //if (data == null)
            //{
            //  await context.CartProducts.AddAsync(cart);
            //   await context.SaveChangesAsync();
            //    return data;
            //}
            //else
            //{
            //    data.Quantity = cart.Quantity;
            //   context.CartProducts.Update(data);
            //   await context.SaveChangesAsync();
            //    return data;
            //}
        }
        public HttpResponseMessage CartAction([FromBody] CartAction action)
        {
            if ((action == null) || (action.ProductId == null) || (action.Command == null))
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }
            var telemetry = new TelemetryClient();

            telemetry.TrackEvent("Cart", new Dictionary <string, string>
            {
                ["command"] = action.Command
            });

            var id = GetCookieId();

            Model.Cart cart;
            switch (action.Command)
            {
            case "add":
                cart = _cartRepository.AddProduct(id, action.ProductId);
                break;

            case "remove":
                cart = _cartRepository.RemoveProduct(id, action.ProductId);
                break;

            case "delete":
                cart = _cartRepository.DeleteProduct(id, action.ProductId);
                break;

            default:
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }

            return(Cart(id, cart));
        }