Spaces:
Sleeping
Sleeping
File size: 1,164 Bytes
6db0915 b3fa49d 6db0915 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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<IdentityUser> _userManager;
public CustomersController(AdminDashboardPresenter presenter, UserManager<IdentityUser> userManager)
{
_presenter = presenter;
_userManager = userManager;
}
public async Task<IActionResult> 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);
}
}
|