public async Task <IActionResult> RemoveItems([FromBody] RemoveItemsRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            var customer = await GetCustomer();

            await _serviceProvider.New <BasketService>().RemoveItemsFromBasket(customer.Id, request);

            return(Ok());
        }
        public async Task RemoveItemsFromBasket(Guid customerId, RemoveItemsRequest request)
        {
            var basket = await GetCustomerBasket(customerId);

            var item = basket?.Items?.FirstOrDefault(x => x.ProductId == request.ProductId);

            var quantity = request.Quantity ?? 0;

            if (item != null)
            {
                if (request.RemoveAll ?? false || quantity >= item.Quantity)
                {
                    _checkoutContext.Remove(item);
                }
                else if (quantity > 0)
                {
                    item.Quantity -= quantity;
                }

                await _checkoutContext.SaveChangesAsync();
            }
        }
Exemplo n.º 3
0
 public async Task RemoveItemsFromBasket(RemoveItemsRequest request)
 {
     await _http.Delete("api/basket/items", request);
 }