@page "/tags/{TagName}" @using RackPeek.Domain.Persistence @using RackPeek.Domain.Resources @using RackPeek.Domain.Resources.SystemResources @inject IResourceCollection ResourceRepository Tag: @TagName

Tag: @TagName

@if (_resources is null) {
loading resources…
} else if (_resources.Count == 0) {
no resources found for this tag
} else {
@foreach (var resource in _resources.OrderBy(r => r.Name)) {
@resource.Name
@resource.Kind
}
}
@code { [Parameter] public string TagName { get; set; } = string.Empty; private IReadOnlyList? _resources; protected override async Task OnParametersSetAsync() { var decoded = Uri.UnescapeDataString(TagName); _resources = await ResourceRepository.GetByTagAsync(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)}"; } }