@page "/users" @using LucideBlazor @using ShadcnBlazor.Buttons @using ShadcnBlazor.DataGrids @using ShadcnBlazor.Dropdowns @using ShadcnBlazor.Extras.AlertDialogs @using ShadcnBlazor.Extras.Toasts @using ShadcnBlazor.Tabels @using Moonlight.Shared.Http.Requests @using Moonlight.Shared.Http.Responses @using Moonlight.Shared.Http.Responses.Users @inject HttpClient HttpClient @inject AlertDialogService AlertDialogService @inject ToastService ToastService @inject NavigationManager Navigation

Users

Manage users registered in your application
Edit Delete
@code { private DataGrid Grid; private async Task> LoadAsync(DataGridRequest request) { var query = $"?startIndex={request.StartIndex}&length={request.Length}"; var filterOptions = request.Filters.Count > 0 ? new FilterOptions(request.Filters) : null; var response = await HttpClient.GetFromJsonAsync>( $"api/users{query}&filterOptions={filterOptions}", Constants.SerializerOptions ); return new DataGridResponse(response!.Data, response.TotalLength); } private void Edit(UserDto dto) => Navigation.NavigateTo($"/users/{dto.Id}"); private async Task DeleteAsync(UserDto user) { await AlertDialogService.ConfirmDangerAsync( $"Deletion of user {user.Username}", "Do you really want to delete this user? This action cannot be undone", async () => { await HttpClient.DeleteAsync($"api/users/{user.Id}"); await ToastService.SuccessAsync("User deletion", $"Successfully deleted user {user.Username}"); await Grid.RefreshAsync(); } ); } }