@page "/hardware/tree" @using RackPeek.Domain.Resources.Hardware @inject IHardwareRepository HardwareRepository Hardware

Hardware

@if (_tree is null) {
loading tree…
} else if (_tree.Count == 0) {
no resources found
} else {
@foreach (var group in _tree .OrderByDescending(h => h.Systems.Count) .ThenBy(h => h.Kind) .ThenBy(h => h.HardwareName) .GroupBy(h => h.Kind)) {
@group.Key
    @foreach (var hardware in group) {
  • @hardware.HardwareName
    @if (hardware.Systems.Any()) {
      @foreach (var system in hardware.Systems .OrderByDescending(s => s.Services.Count) .ThenBy(s => s.SystemName)) {
    • └─ @system.SystemName
      @if (system.Services.Any()) {
        @foreach (var service in system.Services.OrderBy(s => s)) {
      • > @service
      • }
      }
    • }
    }
  • }
}
}
@code { private List? _tree; protected override async Task OnInitializedAsync() { try { _tree = await HardwareRepository.GetTreeAsync(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); throw; } } }