@page "/admin/users" @using MoonCore.Blazor.FlyonUi.Common @using MoonCore.Helpers @using Moonlight.Shared.Http.Responses.Admin.Users @using MoonCore.Blazor.FlyonUi.Grid @using MoonCore.Blazor.FlyonUi.Grid.Columns @using MoonCore.Common @inject HttpApiClient ApiClient @inject AlertService AlertService @inject ToastService ToastService
Create
@code { private DataGrid Grid; private ItemSource ItemSource => ItemSourceFactory.From(LoadItemsAsync); private async Task> LoadItemsAsync( int startIndex, int count, string? filter, SortOption? sortOption ) { var query = $"?startIndex={startIndex}&count={count}"; if (sortOption != null) { var dir = sortOption.Direction == SortDirection.Descending ? "desc" : "asc"; query += $"&orderBy={sortOption.Column}&orderByDir={dir}"; } if (!string.IsNullOrEmpty(filter)) query += $"&filter={filter}"; return await ApiClient.GetJson>($"api/admin/users{query}"); } 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(); } ); } }