Remove basket items when basket is deleted (#170)
* Proving out removing the basket items at the same time the basket is deleted * Fixing existing unit tests * Adding a unit test for the Deletebasket method * Rename test and deleting basket items before basket * Added integration test for DeleteAsync method for BasketItems - Also added a BasketBuilder to create a Basket with no items, or one item.
This commit is contained in:
committed by
Steve Smith
parent
95285593c9
commit
eb02750841
@@ -12,6 +12,7 @@ namespace Microsoft.eShopWeb.ApplicationCore.Services
|
||||
public class BasketService : IBasketService
|
||||
{
|
||||
private readonly IAsyncRepository<Basket> _basketRepository;
|
||||
private readonly IAsyncRepository<BasketItem> _basketItemRepository;
|
||||
private readonly IUriComposer _uriComposer;
|
||||
private readonly IAppLogger<BasketService> _logger;
|
||||
private readonly IRepository<CatalogItem> _itemRepository;
|
||||
@@ -19,12 +20,14 @@ namespace Microsoft.eShopWeb.ApplicationCore.Services
|
||||
public BasketService(IAsyncRepository<Basket> basketRepository,
|
||||
IRepository<CatalogItem> itemRepository,
|
||||
IUriComposer uriComposer,
|
||||
IAppLogger<BasketService> logger)
|
||||
IAppLogger<BasketService> logger,
|
||||
IAsyncRepository<BasketItem> basketItemRepository)
|
||||
{
|
||||
_basketRepository = basketRepository;
|
||||
_uriComposer = uriComposer;
|
||||
_logger = logger;
|
||||
_itemRepository = itemRepository;
|
||||
_basketItemRepository = basketItemRepository;
|
||||
}
|
||||
|
||||
public async Task AddItemToBasket(int basketId, int catalogItemId, decimal price, int quantity)
|
||||
@@ -40,6 +43,11 @@ namespace Microsoft.eShopWeb.ApplicationCore.Services
|
||||
{
|
||||
var basket = await _basketRepository.GetByIdAsync(basketId);
|
||||
|
||||
foreach (var item in basket.Items)
|
||||
{
|
||||
await _basketItemRepository.DeleteAsync(item);
|
||||
}
|
||||
|
||||
await _basketRepository.DeleteAsync(basket);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user