@* Views/Admin/Users/Index.cshtml *@ @model IEnumerable @using Web.Authorization @using Web.ViewModel.AccountVM @{ ViewData["Title"] = "User Management"; } @section Styles { }
@{ var totalUsers = Model.Count(); var adminCount = Model.Count(u => u.SelectedRoles != null && u.SelectedRoles.Any(r => r.Equals("Admin", StringComparison.OrdinalIgnoreCase))); var userCount = Model.Count(u => u.SelectedRoles != null && u.SelectedRoles.Any(r => r.Equals("User", StringComparison.OrdinalIgnoreCase))); var roleCount = Model.SelectMany(u => u.SelectedRoles ?? new List()).Distinct().Count(); }
@totalUsers
Total Users
@adminCount
Admins
@userCount
Users
@roleCount
Roles
@Html.AntiForgeryToken()
System Users
@totalUsers registered
@if (Model.Any()) { @{ var colors = new[] { "#6366f1","#ec4899","#f59e0b","#10b981","#3b82f6","#8b5cf6","#ef4444","#06b6d4" }; var idx = 0; } @foreach (var user in Model) { var initials = ((user.FirstName?.Length > 0 ? user.FirstName[0].ToString() : "") + (user.LastName?.Length > 0 ? user.LastName[0].ToString() : "")).ToUpper(); var bgColor = colors[idx % colors.Length]; var rolesStr = user.SelectedRoles != null ? string.Join(",", user.SelectedRoles) : ""; idx++; }
User Email Roles Actions
@initials
@user.FirstName @user.LastName ID: @(user.Id?.Length > 8 ? user.Id[..8] + "…" : user.Id)
@user.Email @if (user.SelectedRoles != null) { @foreach (var role in user.SelectedRoles) { var roleClass = role.ToLower() switch { "admin" => "admin", "user" => "user", "manager" => "manager", _ => "default" }; @role } }
} else {

No users found

Create your first user to get started

}
0 of @totalUsers selected
Last updated: @DateTime.Now.ToString("MMM dd, yyyy HH:mm")
@section Scripts { }