@page "/" @using RackPeek.Domain.Resources @using RackPeek.Domain.Resources.Hardware @using RackPeek.Domain.Resources.Services.UseCases @using RackPeek.Domain.Resources.SystemResources.UseCases @using Shared.Rcl.Components @inject GetSystemSummaryUseCase SystemSummaryUseCase @inject GetServiceSummaryUseCase ServiceSummaryUseCase @inject GetHardwareUseCaseSummary HardwareSummaryUseCase Home
@if (_loading) {
loading summary…
} else {
Totals
Hardware
@_hardware!.TotalHardware
Systems
@_system!.TotalSystems
Services
@_service!.TotalServices
Hardware
  • ├─ Hardware (@_hardware!.TotalHardware)
  • @if (_hardware.HardwareByKind.Any()) {
      @foreach (var (kind, count) in _hardware.HardwareByKind.OrderByDescending(x => x.Value)) { var pluralKind = Resource.KindToPlural(kind);
    • └─ @pluralKind (@count)
    • }
    }
Systems
  • ├─ Total (@_system!.TotalSystems)
    @if (_system.SystemsByType.Any()) {
    • Types
    • @foreach (var (type, count) in _system.SystemsByType.OrderByDescending(x => x.Value)) {
    • └─ @type (@count)
    • }
    } @if (_system.SystemsByOs.Any()) {
    • Operating Systems
    • @foreach (var (os, count) in _system.SystemsByOs.OrderByDescending(x => x.Value)) {
    • └─ @os (@count)
    • }
    }
Services
  • └─ Total (@_service!.TotalServices)
  • └─ IP Addresses (@_service!.TotalIpAddresses)
}
@code { private bool _loading = true; private SystemSummary? _system; private AllServicesSummary? _service; private HardwareSummary? _hardware; protected override async Task OnInitializedAsync() { var systemTask = SystemSummaryUseCase.ExecuteAsync(); var serviceTask = ServiceSummaryUseCase.ExecuteAsync(); var hardwareTask = HardwareSummaryUseCase.ExecuteAsync(); await Task.WhenAll(systemTask, serviceTask, hardwareTask); _system = systemTask.Result; _service = serviceTask.Result; _hardware = hardwareTask.Result; _loading = false; } }