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()); } }
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()); } }