@page "/Guilds"
@using System.Net.Http.Headers
@using System.Reflection
@using Spacebar.AdminApi.Models
@using Spacebar.AdminAPI.TestClient.Services
@using ArcaneLibs.Blazor.Components
@using ArcaneLibs.Extensions
@inject Config Config
@inject ILocalStorageService LocalStorage
Guilds
Displayed columns
@foreach (var column in DisplayedColumns) {
var value = column.Value;
{
DisplayedColumns[column.Key] = b;
StateHasChanged();
})"/>
@column.Key.Name
}
Got @GuildList.Count guilds.
@{
var columns = DisplayedColumns.Where(kvp => kvp.Value).Select(kvp => kvp.Key).ToList();
}
@foreach (var column in columns) {
| @column.Name |
}
Actions |
@foreach (var user in GuildList.Where(x => !x.Unavailable).OrderByDescending(x=>x.MessageCount)) {
@foreach (var column in columns) {
| @column.GetValue(user) |
}
Delete
|
}
@code {
private Dictionary DisplayedColumns { get; set; } = typeof(GuildModel).GetProperties()
.ToDictionary(p => p, p => p.Name == "Name" || p.Name == "Id" || p.Name == "MessageCount");
private List GuildList { get; set; } = new();
protected override async Task OnInitializedAsync() {
var hc = new StreamingHttpClient();
hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Config.AccessToken);
// var request = new HttpRequestMessage(HttpMethod.Get, Config.AdminUrl + "/_spacebar/admin/users/");
var response = hc.GetAsyncEnumerableFromJsonAsync(Config.AdminUrl + "/_spacebar/admin/guilds/");
// if (!response.IsSuccessStatusCode) throw new Exception(await response.Content.ReadAsStringAsync());
// var content = response.Content.ReadFromJsonAsAsyncEnumerable();
await foreach (var user in response) {
// Console.WriteLine(user.ToJson(indent: false, ignoreNull: true));
GuildList.Add(user!);
if(GuildList.Count % 1000 == 0)
StateHasChanged();
}
StateHasChanged();
}
}