@page "/admin/users" @using MoonCore.Helpers @using MoonCore.Models @using Moonlight.Shared.Http.Responses.Admin.Users @using MoonCore.Blazor.FlyonUi.Grid @using MoonCore.Blazor.FlyonUi.Grid.Columns @inject HttpApiClient ApiClient @inject AlertService AlertService @inject ToastService ToastService
Create
@code { private DataGrid Grid; private async Task> ItemsProviderAsync(DataGridItemRequest request) { var query = $"?startIndex={request.StartIndex}&count={request.Count}"; if (!string.IsNullOrEmpty(request.SortColumn)) { var dir = request.SortDirection == SortState.Descending ? "desc" : "asc"; query += $"&orderBy={request.SortColumn}&orderByDir={dir}"; } if (!string.IsNullOrEmpty(request.Filter)) query += $"&filter={request.Filter}"; var data = await ApiClient.GetJson>($"api/admin/users{query}"); return new() { Items = data.Items, TotalCount = data.TotalCount }; } private async Task DeleteAsync(UserResponse response) { await AlertService.ConfirmDangerAsync( "User deletion", $"Do you really want to delete the user '{response.Username}'", async () => { await ApiClient.Delete($"api/admin/users/{response.Id}"); await ToastService.SuccessAsync("Successfully deleted user"); await Grid.RefreshAsync(); } ); } }