@page "/labels/{LabelName}" @using RackPeek.Domain.Persistence @using RackPeek.Domain.Resources @using RackPeek.Domain.Resources.SystemResources @inject IResourceCollection ResourceRepository Label: @LabelName

Label: @LabelName

@if (_resources is null) {
loading resources…
} else if (_resources.Count == 0) {
no resources found for this label
} else {
@foreach (var (resource, value) in _resources.OrderBy(r => r.Item1.Name)) {
@resource.Name
@resource.Kind
Value: @value
}
}
@code { [Parameter] public string LabelName { get; set; } = string.Empty; private IReadOnlyList<(Resource, string)>? _resources; protected override async Task OnParametersSetAsync() { var decoded = Uri.UnescapeDataString(LabelName); _resources = await ResourceRepository.GetByLabelAsync(decoded); } private string GetResourceUrl(Resource resource) { if (resource.Kind == SystemResource.KindLabel) { return $"resources/systems/{Uri.EscapeDataString(resource.Name)}"; } if (resource.Kind == Service.KindLabel) { return $"resources/services/{Uri.EscapeDataString(resource.Name)}"; } return $"resources/hardware/{Uri.EscapeDataString(resource.Name)}"; } }