using ECommerce.Presenter.Presenters; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; namespace Ecommerce_web_project.Controllers.Admin; [Area("Admin")] [Authorize(Roles = "Admin")] public class CustomersController : Controller { private readonly AdminDashboardPresenter _presenter; private readonly UserManager _userManager; public CustomersController(AdminDashboardPresenter presenter, UserManager userManager) { _presenter = presenter; _userManager = userManager; } public async Task Index() { var customers = await _presenter.GetAllCustomersAsync(); var adminUserIds = (await _userManager.GetUsersInRoleAsync("Admin")) .Select(u => u.Id) .ToHashSet(); var filtered = customers.Where(c => !adminUserIds.Contains(c.UserId)).ToList(); foreach (var customer in filtered) { var user = await _userManager.FindByIdAsync(customer.UserId); customer.Email = user?.Email ?? ""; } return View(filtered); } }