@page "/Users"
@using System.Net.Http.Headers
@using System.Reflection
@using Spacebar.AdminApi.Models
@using Spacebar.AdminAPI.TestClient.Services
@using ArcaneLibs.Blazor.Components
@inject Config Config
@inject ILocalStorageService LocalStorage
Users
Displayed columns
@foreach (var column in DisplayedColumns) {
var value = column.Value;
{
DisplayedColumns[column.Key] = b;
StateHasChanged();
})"/>
@column.Key.Name
}
@{
var columns = DisplayedColumns.Where(kvp => kvp.Value).Select(kvp => kvp.Key).ToList();
}
@foreach (var column in columns) {
| @column.Name |
}
Actions |
@foreach (var user in UserList) {
@foreach (var column in columns) {
| @column.GetValue(user) |
}
Delete
|
}
@code {
private Dictionary DisplayedColumns { get; set; } = typeof(UserModel).GetProperties()
.ToDictionary(p => p, p => p.Name == "Username" || p.Name == "Id" || p.Name == "MessageCount");
private List UserList { get; set; } = new();
protected override async Task OnInitializedAsync() {
using var hc = new HttpClient();
hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Config.AccessToken);
var response = await hc.GetAsync(Config.AdminUrl + "/_spacebar/admin/users/");
if (!response.IsSuccessStatusCode) throw new Exception(await response.Content.ReadAsStringAsync());
var content = response.Content.ReadFromJsonAsAsyncEnumerable();
await foreach (var user in content) {
UserList.Add(user);
StateHasChanged();
}
}
}