|
|
|
@ -8,11 +8,15 @@ namespace AdminPanel.Pages
|
|
|
|
|
{
|
|
|
|
|
public partial class UserListPanel
|
|
|
|
|
{
|
|
|
|
|
[Inject] public ISnackbar Snackbar { get; private init; }
|
|
|
|
|
[Inject] public IUsersService Service { get; private init; }
|
|
|
|
|
[Inject] private ISnackbar Snackbar { get; init; }
|
|
|
|
|
[Inject] private IUsersService Service { get; init; }
|
|
|
|
|
[Inject] private ILogger<UserListPanel> Logger { get; init; }
|
|
|
|
|
|
|
|
|
|
private MudDataGrid<User> Grid { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private string? SearchString { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private HashSet<User> SelectedItems { get; set; } = new();
|
|
|
|
|
|
|
|
|
@ -26,7 +30,8 @@ namespace AdminPanel.Pages
|
|
|
|
|
|
|
|
|
|
private async Task<GridData<User>> LoadUsersFromServer(GridState<User> state)
|
|
|
|
|
{
|
|
|
|
|
var (count, users) = await Service.ListUsers((uint)(state.Page * state.PageSize), (uint)state.PageSize);
|
|
|
|
|
Logger.LogDebug($"Loading users from server, state = {state} searchString = {SearchString}");
|
|
|
|
|
var (count, users) = await Service.ListUsers((uint)(state.Page * state.PageSize), (uint)state.PageSize, SearchString);
|
|
|
|
|
return new GridData<User>
|
|
|
|
|
{
|
|
|
|
|
TotalItems = (int)count,
|
|
|
|
@ -37,7 +42,7 @@ namespace AdminPanel.Pages
|
|
|
|
|
|
|
|
|
|
private async void OnAccountUpdated(User user)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(user.IsAdmin);
|
|
|
|
|
Logger.LogDebug($"Account updated : {user}");
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await Service.UpdateUser(user);
|
|
|
|
@ -56,8 +61,9 @@ namespace AdminPanel.Pages
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await Service.AddUser(FormAccountName!, FormAccountEmail!, FormAccountPassword!,
|
|
|
|
|
var user = await Service.AddUser(FormAccountName!, FormAccountEmail!, FormAccountPassword!,
|
|
|
|
|
FormAccountIsAdmin);
|
|
|
|
|
Logger.LogDebug($"Added user : {user}");
|
|
|
|
|
await Grid.ReloadServerData();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
@ -68,11 +74,11 @@ namespace AdminPanel.Pages
|
|
|
|
|
|
|
|
|
|
private async void RemoveSelection(MouseEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var items = SelectedItems.ToList().ConvertAll(u => u.Id);
|
|
|
|
|
Console.WriteLine(items.Count);
|
|
|
|
|
var users = SelectedItems.ToList().ConvertAll(u => u.Id);
|
|
|
|
|
Logger.LogDebug($"Removing users : {users}");
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await Service.RemoveUsers(items);
|
|
|
|
|
await Service.RemoveUsers(users);
|
|
|
|
|
await Grid.ReloadServerData();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
@ -83,7 +89,16 @@ namespace AdminPanel.Pages
|
|
|
|
|
|
|
|
|
|
private Func<string, string?> VerifyLength(uint min, uint max)
|
|
|
|
|
{
|
|
|
|
|
return s => (s.Length >= min && s.Length <= max) ? null : $"length is incorrect (must be between {min} and {max})";
|
|
|
|
|
return s => s.Length >= min && s.Length <= max ? null : $"length is incorrect (must be between {min} and {max})";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ValidateSearch(KeyboardEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (e.Key == "Enter")
|
|
|
|
|
{
|
|
|
|
|
Grid.ReloadServerData();
|
|
|
|
|
Logger.LogDebug($"Searching for {SearchString}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|