-
-
-
-
- @{
- var server = Containers.First(x => x.Value == context).Key;
- }
-
- @(server.Name)
-
-
-
-
- @(context.Cpu)%
-
-
-
-
- @(Formatter.FormatSize(context.Memory))
-
-
-
-
- @(Formatter.FormatSize(context.NetworkIn))
-
-
-
-
- @(Formatter.FormatSize(context.NetworkOut))
-
-
-
-
- @{
- var server = Containers.First(x => x.Value == context).Key;
- }
-
- @server.Owner.Email
-
-
-
-
-
+
+
+ @if (IsRunning)
+ {
+
Currently scanning: @(Node?.Name)
+ }
+ else
+ {
+ Scan complete
+ }
-
+
+
@code
{
- private LazyLoader LazyLoader;
+ private List
RunningServers = new();
+ private bool IsRunning;
+ private Node? Node;
- private Dictionary Containers = new();
-
- private async Task Load(LazyLoader lazyLoader)
+ protected override async Task OnAfterRenderAsync(bool firstRender)
{
- Containers.Clear();
-
- foreach (var node in NodeRepository.Get().ToArray())
+ if (firstRender)
{
- await lazyLoader.SetText(node.Name);
+ await Task.Run(Scan);
+ }
+ }
+
+ private async Task Scan()
+ {
+ IsRunning = true;
+ RunningServers.Clear();
+
+ await InvokeAsync(StateHasChanged);
+
+ var nodes = NodeRepository.Get().ToArray();
+
+ Node = nodes.First();
+
+ foreach (var node in nodes)
+ {
+ Node = node;
+
+ await InvokeAsync(StateHasChanged);
try
{
@@ -111,20 +141,31 @@
var server = ServerRepository
.Get()
.Include(x => x.Owner)
+ .Include(x => x.Node)
+ .Include(x => x.Image)
.FirstOrDefault(x => x.Uuid == uuid);
if (server != null)
{
- Containers.Add(server, container);
+ RunningServers.Add(new()
+ {
+ Server = server,
+ Container = container
+ });
+
+ await InvokeAsync(StateHasChanged);
}
}
}
}
catch (Exception)
{
- // ignored
+ // ignored
}
}
+
+ IsRunning = false;
+ await InvokeAsync(StateHasChanged);
}
private async Task StopAll()
@@ -138,9 +179,9 @@
if (b)
{
- foreach (var containerData in Containers)
+ foreach (var runningServer in RunningServers)
{
- await ServerService.SetPowerState(containerData.Key, PowerSignal.Stop);
+ await ServerService.SetPowerState(runningServer.Server, PowerSignal.Stop);
}
}
}
@@ -156,9 +197,9 @@
if (b)
{
- foreach (var containerData in Containers)
+ foreach (var runningServer in RunningServers)
{
- await ServerService.SetPowerState(containerData.Key, PowerSignal.Kill);
+ await ServerService.SetPowerState(runningServer.Server, PowerSignal.Kill);
}
}
}