using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.eShopWeb.ApplicationCore.Interfaces; namespace Microsoft.eShopWeb.Infrastructure.Data; public class BasketQueryService : IBasketQueryService { private readonly CatalogContext _dbContext; public BasketQueryService(CatalogContext dbContext) { _dbContext = dbContext; } public async Task CountTotalBasketItems(string username) { var totalItems = await _dbContext.Baskets .Where(basket => basket.BuyerId == username) .SelectMany(item => item.Items) .SumAsync(sum => sum.Quantity); return totalItems; } }