Upgraded mooncore. Done required refactoring to function with new version

This commit is contained in:
2025-10-20 19:27:31 +00:00
parent 85392208c4
commit f6b71f4de6
51 changed files with 239 additions and 224 deletions

View File

@@ -1,8 +1,9 @@
@using MoonCore.Blazor.FlyonUi.Common
@using MoonlightServers.Shared.Http.Requests.Admin.Servers
@using MoonCore.Helpers
@using MoonCore.Models
@using MoonlightServers.Shared.Http.Responses.Admin.NodeAllocations
@using MoonCore.Blazor.FlyonUi.Forms
@using MoonCore.Common
@using MoonlightServers.Frontend.UI.Views.Admin.All
@inject HttpApiClient ApiClient
@@ -13,9 +14,8 @@
<div class="mt-2">
<InputMultipleItem TItem="NodeAllocationResponse"
DisplayField="@(x => $"{x.IpAddress}:{x.Port}")"
SearchField="@(x => $"{x.IpAddress}:{x.Port}")"
Value="Parent.Allocations"
ItemSource="ItemSourceAsync">
ItemSource="ItemSource">
</InputMultipleItem>
</div>
</div>
@@ -26,19 +26,17 @@
[Parameter] public CreateServerRequest Request { get; set; }
[Parameter] public Create Parent { get; set; }
private async Task<NodeAllocationResponse[]> ItemSourceAsync()
private ItemSource<NodeAllocationResponse> ItemSource => ItemSourceFactory.From(LoadAsync);
private async Task<IEnumerable<NodeAllocationResponse>> LoadAsync(int startIndex, int count)
{
// Handle unselected node
// ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
if (Parent.Node == null)
return [];
var items = await CountedData<NodeAllocationResponse>.LoadAllAsync(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<NodeAllocationResponse>>(
$"api/admin/servers/nodes/{Parent.Node.Id}/allocations/free?startIndex={startIndex}&count={count}"
)
return await ApiClient.GetJson<CountedData<NodeAllocationResponse>>(
$"api/admin/servers/nodes/{Parent.Node.Id}/allocations/free?startIndex={startIndex}&count={count}"
);
return items;
}
}

View File

@@ -1,10 +1,11 @@
@using MoonCore.Blazor.FlyonUi.Common
@using MoonlightServers.Shared.Http.Requests.Admin.Servers
@using MoonCore.Helpers
@using MoonCore.Models
@using MoonlightServers.Shared.Http.Responses.Admin.Nodes
@using MoonlightServers.Shared.Http.Responses.Admin.Stars
@using Moonlight.Shared.Http.Responses.Admin.Users
@using MoonCore.Blazor.FlyonUi.Forms
@using MoonCore.Common
@using MoonlightServers.Frontend.UI.Views.Admin.All
@inject HttpApiClient ApiClient
@@ -22,8 +23,7 @@
<div class="mt-2">
<InputItem TItem="UserResponse"
DisplayField="@(x => x.Username)"
SearchField="@(x => x.Username)"
ItemSource="LoadUsersAsync"
ItemSource="UsersItemSource"
@bind-Value="Parent.Owner">
</InputItem>
</div>
@@ -34,8 +34,7 @@
<div class="mt-2">
<InputItem TItem="StarResponse"
DisplayField="@(x => x.Name)"
SearchField="@(x => x.Name)"
ItemSource="LoadStarsAsync"
ItemSource="StarsItemSource"
@bind-Value="Parent.Star">
</InputItem>
</div>
@@ -46,8 +45,7 @@
<div class="mt-2">
<InputItem TItem="NodeResponse"
DisplayField="@(x => x.Name)"
SearchField="@(x => x.Name)"
ItemSource="LoadNodesAsync"
ItemSource="NodesItemSource"
@bind-Value="Parent.Node">
</InputItem>
</div>
@@ -91,30 +89,28 @@
[Parameter] public CreateServerRequest Request { get; set; }
[Parameter] public Create Parent { get; set; }
private async Task<StarResponse[]> LoadStarsAsync()
private ItemSource<StarResponse> StarsItemSource => ItemSourceFactory.From(LoadStarsAsync);
private ItemSource<NodeResponse> NodesItemSource => ItemSourceFactory.From(LoadNodesAsync);
private ItemSource<UserResponse> UsersItemSource => ItemSourceFactory.From(LoadUsersAsync);
private async Task<IEnumerable<StarResponse>> LoadStarsAsync(int startIndex, int count)
{
return await CountedData<StarResponse>.LoadAllAsync(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<StarResponse>>(
$"api/admin/servers/stars?startIndex={startIndex}&count={count}"
)
return await ApiClient.GetJson<CountedData<StarResponse>>(
$"api/admin/servers/stars?startIndex={startIndex}&count={count}"
);
}
private async Task<NodeResponse[]> LoadNodesAsync()
private async Task<IEnumerable<NodeResponse>> LoadNodesAsync(int startIndex, int count)
{
return await CountedData<NodeResponse>.LoadAllAsync(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<NodeResponse>>(
$"api/admin/servers/nodes?startIndex={startIndex}&count={count}"
)
return await ApiClient.GetJson<CountedData<NodeResponse>>(
$"api/admin/servers/nodes?startIndex={startIndex}&count={count}"
);
}
private async Task<UserResponse[]> LoadUsersAsync()
private async Task<IEnumerable<UserResponse>> LoadUsersAsync(int startIndex, int count)
{
return await CountedData<UserResponse>.LoadAllAsync(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<UserResponse>>(
$"api/admin/users?startIndex={startIndex}&count={count}"
)
return await ApiClient.GetJson<CountedData<UserResponse>>(
$"api/admin/users?startIndex={startIndex}&count={count}"
);
}
}

View File

@@ -1,7 +1,7 @@
@using MoonCore.Blazor.FlyonUi.Components
@using MoonCore.Common
@using MoonlightServers.Shared.Http.Requests.Admin.Servers
@using MoonCore.Helpers
@using MoonCore.Models
@using MoonlightServers.Frontend.UI.Views.Admin.All
@using MoonlightServers.Shared.Http.Requests.Admin.ServerVariables
@using MoonlightServers.Shared.Http.Responses.Admin.StarVariables
@@ -51,10 +51,10 @@
StarVariables = [];
return;
}
StarVariables = await CountedData<StarVariableResponse>.LoadAllAsync(async (startIndex, count) =>
StarVariables = await CountedData.AllAsync(async (index, count) =>
await ApiClient.GetJson<CountedData<StarVariableResponse>>(
$"api/admin/servers/stars/{Parent.Star.Id}/variables?startIndex={startIndex}&count={count}"
$"api/admin/servers/stars/{Parent.Star.Id}/variables?startIndex={index}&count={count}"
)
);
}
@@ -77,7 +77,7 @@
{
Key = starVariable.Key
};
Request.Variables.Add(serverVar);
}

View File

@@ -3,7 +3,7 @@
@using MoonlightServers.Shared.Http.Requests.Client.Servers.Shares
@using MoonlightServers.Shared.Http.Responses.Client.Servers
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
@inherits MoonCore.Blazor.FlyonUi.Modals.BaseModal
<div class="p-5">
<div class="flex items-center gap-4">

View File

@@ -2,7 +2,7 @@
@using MoonCore.Blazor.FlyonUi.Components
@using MoonCore.Blazor.FlyonUi.Modals
@using MoonCore.Blazor.FlyonUi.Toasts
@using MoonCore.Models
@using MoonCore.Common
@using MoonlightServers.Frontend.Services
@using MoonlightServers.Shared.Http.Requests.Client.Servers.Shares
@using MoonlightServers.Shared.Http.Responses.Client.Servers.Shares
@@ -65,7 +65,7 @@
private async Task LoadAsync(LazyLoader _)
{
Shares = await CountedData<ServerShareResponse>.LoadAllAsync(async (startIndex, count)
Shares = await CountedData.AllAsync<ServerShareResponse>(async (startIndex, count)
=> await ShareService.GetAsync(Server.Id, startIndex, count)
);
}

View File

@@ -1,6 +1,6 @@
@using MoonCore.Blazor.FlyonUi.Components
@using MoonCore.Blazor.FlyonUi.Toasts
@using MoonCore.Models
@using MoonCore.Common
@using MoonlightServers.Frontend.Services
@using MoonlightServers.Shared.Http.Responses.Client.Servers.Variables
@@ -42,7 +42,7 @@
private async Task LoadAsync(LazyLoader _)
{
Variables = await CountedData<ServerVariableDetailResponse>.LoadAllAsync(async (startIndex, count)
Variables = await CountedData.AllAsync<ServerVariableDetailResponse>(async (startIndex, count)
=> await ServerService.GetVariablesAsync(Server.Id, startIndex, count)
);
}

View File

@@ -1,9 +1,10 @@
@using MoonCore.Blazor.FlyonUi.Common
@using MoonlightServers.Shared.Http.Requests.Admin.Servers
@using MoonCore.Helpers
@using MoonCore.Models
@using MoonlightServers.Shared.Http.Responses.Admin.NodeAllocations
@using MoonlightServers.Shared.Http.Responses.Admin.Servers
@using MoonCore.Blazor.FlyonUi.Forms
@using MoonCore.Common
@using MoonlightServers.Frontend.UI.Views.Admin.All
@inject HttpApiClient ApiClient
@@ -15,8 +16,7 @@
<InputMultipleItem TItem="NodeAllocationResponse"
Value="Parent.Allocations"
DisplayField="@(x => $"{x.IpAddress}:{x.Port}")"
SearchField="@(x => $"{x.IpAddress}:{x.Port}")"
ItemSource="LoaderAsync">
ItemSource="ItemSource">
</InputMultipleItem>
</div>
</div>
@@ -28,12 +28,12 @@
[Parameter] public ServerResponse Server { get; set; }
[Parameter] public Update Parent { get; set; }
private async Task<NodeAllocationResponse[]> LoaderAsync()
private ItemSource<NodeAllocationResponse> ItemSource => ItemSourceFactory.From(LoadAsync);
private async Task<IEnumerable<NodeAllocationResponse>> LoadAsync(int startIndex, int count)
{
return await CountedData<NodeAllocationResponse>.LoadAllAsync(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<NodeAllocationResponse>>(
$"api/admin/servers/nodes/{Server.NodeId}/allocations/free?startIndex={startIndex}&count={count}&serverId={Server.Id}"
)
return await ApiClient.GetJson<CountedData<NodeAllocationResponse>>(
$"api/admin/servers/nodes/{Server.NodeId}/allocations/free?startIndex={startIndex}&count={count}&serverId={Server.Id}"
);
}
}

View File

@@ -1,8 +1,9 @@
@using MoonCore.Blazor.FlyonUi.Common
@using MoonlightServers.Shared.Http.Requests.Admin.Servers
@using MoonCore.Helpers
@using MoonCore.Models
@using Moonlight.Shared.Http.Responses.Admin.Users
@using MoonCore.Blazor.FlyonUi.Forms
@using MoonCore.Common
@using MoonlightServers.Frontend.UI.Views.Admin.All
@inject HttpApiClient ApiClient
@@ -20,9 +21,8 @@
<div class="mt-2">
<InputItem TItem="UserResponse"
DisplayField="@(x => x.Username)"
SearchField="@(x => x.Username)"
@bind-Value="Parent.Owner"
ItemSource="LoaderAsync">
ItemSource="UserItemSource">
</InputItem>
</div>
@@ -64,12 +64,12 @@
[Parameter] public UpdateServerRequest Request { get; set; }
[Parameter] public Update Parent { get; set; }
private async Task<UserResponse[]> LoaderAsync()
private ItemSource<UserResponse> UserItemSource => ItemSourceFactory.From(LoadAsync);
private async Task<IEnumerable<UserResponse>> LoadAsync(int startIndex, int count)
{
return await CountedData<UserResponse>.LoadAllAsync(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<UserResponse>>(
$"api/admin/users?startIndex={startIndex}&count={count}"
)
return await ApiClient.GetJson<CountedData<UserResponse>>(
$"api/admin/users?startIndex={startIndex}&count={count}"
);
}
}

View File

@@ -1,7 +1,7 @@
@using MoonCore.Blazor.FlyonUi.Components
@using MoonCore.Common
@using MoonlightServers.Shared.Http.Requests.Admin.Servers
@using MoonCore.Helpers
@using MoonCore.Models
@using MoonlightServers.Shared.Http.Requests.Admin.ServerVariables
@using MoonlightServers.Shared.Http.Responses.Admin.Servers
@using MoonlightServers.Shared.Http.Responses.Admin.ServerVariables
@@ -50,13 +50,13 @@
private async Task LoadAsync(LazyLoader _)
{
StarVariables = await CountedData<StarVariableResponse>.LoadAllAsync(async (startIndex, count) =>
StarVariables = await CountedData.AllAsync<StarVariableResponse>(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<StarVariableResponse>>(
$"api/admin/servers/stars/{Server.StarId}/variables?startIndex={startIndex}&count={count}"
)
);
ServerVariables = await CountedData<ServerVariableResponse>.LoadAllAsync(async (startIndex, count) =>
ServerVariables = await CountedData.AllAsync<ServerVariableResponse>(async (startIndex, count) =>
await ApiClient.GetJson<CountedData<ServerVariableResponse>>(
$"api/admin/servers/{Server.Id}/variables?startIndex={startIndex}&count={count}"
)

View File

@@ -4,7 +4,7 @@
@using MoonlightServers.Shared.Http.Responses.Client.Servers
@using MoonlightServers.Shared.Http.Responses.Client.Servers.Shares
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
@inherits MoonCore.Blazor.FlyonUi.Modals.BaseModal
<div class="p-5">
<div class="flex items-center gap-4">