Basket : Improve, reduce, remove duplication call to database (#610)

This commit is contained in:
Cédric Michel
2021-11-01 22:09:34 +01:00
committed by GitHub
parent 47f69eb294
commit 984740d422
9 changed files with 76 additions and 79 deletions

View File

@@ -34,20 +34,9 @@ namespace Microsoft.eShopWeb.Web.Services
{
return await CreateBasketForUser(userName);
}
return await CreateViewModelFromBasket(basket);
}
private async Task<BasketViewModel> CreateViewModelFromBasket(Basket basket)
{
var viewModel = new BasketViewModel
{
Id = basket.Id,
BuyerId = basket.BuyerId,
Items = await GetBasketItems(basket.Items)
};
var viewModel = await Map(basket);
return viewModel;
}
}
private async Task<BasketViewModel> CreateBasketForUser(string userId)
{
@@ -84,5 +73,24 @@ namespace Microsoft.eShopWeb.Web.Services
return items;
}
public async Task<BasketViewModel> Map(Basket basket)
{
return new BasketViewModel()
{
BuyerId = basket.BuyerId,
Id = basket.Id,
Items = await GetBasketItems(basket.Items)
};
}
public async Task<int> CountTotalBasketItems(string username)
{
var basketSpec = new BasketWithItemsSpecification(username);
var basket = await _basketRepository.GetBySpecAsync(basketSpec);
if (basket == null)
return 0;
return basket.Items.Sum(i => i.Quantity);
}
}
}