@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; @column.Key.Name
}

Got @GuildList.Count guilds.

@{ var columns = DisplayedColumns.Where(kvp => kvp.Value).Select(kvp => kvp.Key).ToList(); } @foreach (var column in columns) { } @foreach (var user in GuildList.Where(x => !x.Unavailable).OrderByDescending(x=>x.MessageCount)) { @foreach (var column in columns) { } }
@column.NameActions
@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(); } }