public IHttpActionResult DeleteOneProductInstanceFromBasket([FromBody] DeleteOneProductInstanceFromBasketRequest request)
        {
            User user = GetCurrentUser();

            if (user == null)
            {
                return(Unauthorized());
            }
            Product product = user.Products.FirstOrDefault(p => p.Id == request.Id);

            if (product == null)
            {
                return(BadRequest());
            }
            try
            {
                user.Products.Remove(product);
                UnitOfWork.SaveChanges();
                DeleteOneProductInstanceFromBasketResponse response = new DeleteOneProductInstanceFromBasketResponse
                {
                    Count      = user.Products.Count(p => p.Id == request.Id),
                    TotalCount = user.Products.Count
                };
                return(Ok(response));
            }
            catch
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 2
0
        public IHttpActionResult DeleteOneProductInstanceFromBasket([FromBody] DeleteOneProductInstanceFromBasketRequest request)
        {
            User user = GetCurrentUser();

            if (user == null)
            {
                return(Unauthorized());
            }
            Product product = user.Products.FirstOrDefault(p => p.Id == request.Id);

            if (product == null)
            {
                return(BadRequest());
            }
            try
            {
                UnitOfWork.Context.Database.ExecuteSqlCommand($"do $$ begin perform dbo.delete_one_product_instance_from_basket({user.Id}, {product.Id}); end $$");
                DeleteOneProductInstanceFromBasketResponse response = new DeleteOneProductInstanceFromBasketResponse
                {
                    Count = UnitOfWork.Context.Database.SqlQuery <int>($"select \"dbo\".get_product_count_from_basket({user.Id}, {product.Id});").FirstOrDefault()
                };
                return(Ok(response));
            }
            catch (System.Exception ex)
            {
                return(BadRequest());
            }
        }