Re-adding BasketQueryService

This commit is contained in:
Steve Smith
2021-12-04 11:49:05 -05:00
parent a675f3ad57
commit 20b060aeb3
6 changed files with 65 additions and 23 deletions

View File

@@ -0,0 +1,31 @@
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.eShopWeb.ApplicationCore.Interfaces;
namespace Microsoft.eShopWeb.Infrastructure.Data.Queries;
public class BasketQueryService : IBasketQueryService
{
private readonly CatalogContext _dbContext;
public BasketQueryService(CatalogContext dbContext)
{
_dbContext = dbContext;
}
/// <summary>
/// This method performs the sum on the database rather than in memory
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
public async Task<int> CountTotalBasketItems(string username)
{
var totalItems = await _dbContext.Baskets
.Where(basket => basket.BuyerId == username)
.SelectMany(item => item.Items)
.SumAsync(sum => sum.Quantity);
return totalItems;
}
}