Spaces:
Sleeping
Sleeping
File size: 1,264 Bytes
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 39 | using ECommerce.Model.Entities;
using ECommerce.Model.Repositories;
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 DashboardController : Controller
{
private readonly AdminDashboardPresenter _presenter;
private readonly UserManager<IdentityUser> _userManager;
private readonly ICustomerRepository _customerRepo;
public DashboardController(
AdminDashboardPresenter presenter,
UserManager<IdentityUser> userManager,
ICustomerRepository customerRepo)
{
_presenter = presenter;
_userManager = userManager;
_customerRepo = customerRepo;
}
public async Task<IActionResult> Index()
{
var dashboard = await _presenter.GetDashboardAsync();
var adminUserIds = (await _userManager.GetUsersInRoleAsync("Admin"))
.Select(u => u.Id)
.ToHashSet();
var allCustomers = await _customerRepo.GetAllAsync();
dashboard.TotalCustomers = allCustomers.Count(c => !adminUserIds.Contains(c.UserId));
return View(dashboard);
}
}
|