| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- @using RackPeek.Domain.Resources.SystemResources
- @using RackPeek.Domain.Resources.SystemResources.UseCases
- @inject ISystemRepository SystemRepository
- @inject UpdateSystemUseCase UpdateSystemUseCase
- @inject NavigationManager Nav
- <div class="min-h-screen bg-zinc-950 text-zinc-200 font-mono p-6 space-y-6">
- <AddSystemComponent OnCreated="NavigateToNewResource"/>
- @if (_systems is null)
- {
- <div class="text-zinc-500">loading systems…</div>
- }
- else if (_systems.Count == 0)
- {
- <div class="text-zinc-500">no systems found</div>
- }
- else
- {
- <div class="space-y-4">
- @foreach (var group in _systems.OrderBy(s => s.Name).GroupBy(s => s.RunsOn).OrderByDescending(g => g.Count()))
- {
- foreach (var systemResource in group)
- {
- <SystemCardComponent System="systemResource" OnSave="UpdateSystem" OnDeleted="Callback"/>
- }
- }
- </div>
- }
- </div>
- @code {
- private IReadOnlyList<SystemResource>? _systems;
- protected override async Task OnInitializedAsync()
- {
- _systems = await SystemRepository.GetAllAsync();
- }
- async Task UpdateSystem(SystemEditModel edit)
- {
- await UpdateSystemUseCase.ExecuteAsync(
- edit.Name,
- edit.Type,
- edit.Os,
- edit.Cores,
- edit.Ram,
- edit.RunsOn
- );
- }
- private Task NavigateToNewResource(string serverName)
- {
- Nav.NavigateTo($"/resources/systems/{serverName}");
- return Task.CompletedTask;
- }
- private async Task Callback(string obj)
- {
- _systems = await SystemRepository.GetAllAsync();
- }
- }
|