diff --git a/LANCommander.Server/UI/Pages/Settings/Roles/Edit.razor b/LANCommander.Server/UI/Pages/Settings/Roles/Edit.razor
index 59287f2b..3e11fc74 100644
--- a/LANCommander.Server/UI/Pages/Settings/Roles/Edit.razor
+++ b/LANCommander.Server/UI/Pages/Settings/Roles/Edit.razor
@@ -1,4 +1,5 @@
@page "/Settings/Roles/{id:guid}"
+@using Microsoft.EntityFrameworkCore
@inject RoleService RoleService
@inject CollectionService CollectionService
@inject IMessageService MessageService
@@ -38,7 +39,12 @@
{
Role = await RoleService
.AsNoTracking()
- .Include(r => r.Users)
+ .Query(q =>
+ {
+ return q
+ .Include(r => r.UserRoles)
+ .ThenInclude(ur => ur.User);
+ })
.Include(r => r.Collections)
.GetAsync(Id);
diff --git a/LANCommander.Server/UI/Pages/Settings/Roles/Index.razor b/LANCommander.Server/UI/Pages/Settings/Roles/Index.razor
index ecfe4a18..09246462 100644
--- a/LANCommander.Server/UI/Pages/Settings/Roles/Index.razor
+++ b/LANCommander.Server/UI/Pages/Settings/Roles/Index.razor
@@ -17,52 +17,36 @@
-
-
-
+
+
+
+
+
+ Edit
-
-
-
-
-
-
-
- Edit
-
-
- @if (context.Name != RoleService.AdministratorRoleName)
- {
-
-
-
- }
- else
- {
-
-
-
- }
-
-
-
-
+ @if (context.Name != RoleService.AdministratorRoleName)
+ {
+
+
+
+ }
+ else
+ {
+
+
+
+ }
+
+
+
@code {
- ICollection RolesDetails { get; set; } = new List();
- ICollection Roles { get; set; } = new List();
-
Settings Settings = SettingService.GetSettings();
bool Loading = true;
bool AddRoleDialogVisible = false;
- RoleViewModel NewRole = new RoleViewModel();
+ Role NewRole { get; set; } = new();
- protected override async Task OnAfterRenderAsync(bool firstRender)
+ DataTable Table;
+ int Total;
+
+ async Task DeleteRole(Role role)
{
- if (firstRender)
- await LoadData();
- }
-
- async Task LoadData()
- {
- RolesDetails = new List();
-
- Roles = await RoleService.Include(r => r.Collections).SortBy(r => r.Name).GetAsync();
-
- foreach (var role in Roles)
- {
- var users = await RoleService.GetUsersAsync(role.Name);
-
- RolesDetails.Add(new RoleViewModel
- {
- Id = role.Id,
- Name = role.Name,
- Collections = role.Collections != null ? role.Collections.Count : 0,
- Users = users.Count()
- });
- }
-
- Loading = false;
-
- StateHasChanged();
- }
-
- async Task DeleteRole(RoleViewModel roleViewModel)
- {
- var role = await RoleService.FirstOrDefaultAsync(r => r.Name == roleViewModel.Name);
+ role = await RoleService.FirstOrDefaultAsync(r => r.Name == role.Name);
if (role.Name == RoleService.AdministratorRoleName)
{
@@ -124,7 +78,7 @@
{
await RoleService.DeleteAsync(role);
- await LoadData();
+ Table.Reload();
MessageService.Success($"Deleted {role.Name}!");
}
@@ -132,8 +86,6 @@
void ShowNewRoleDialog()
{
- NewRole = new RoleViewModel();
-
AddRoleDialogVisible = true;
}
@@ -155,7 +107,7 @@
Name = NewRole.Name
});
- await LoadData();
+ Table.Reload();
MessageService.Success("Role added!");
}