using RackPeek.Domain.Resources; using RackPeek.Domain.Resources.Models; using RackPeek.Domain.Resources.Services; using RackPeek.Domain.Resources.SystemResources; namespace RackPeek.Domain.Persistence; public class YamlResourceRepository(IResourceCollection resources) : IResourceRepository { public Task GetResourceKindAsync(string name) { // Use the centralized GetByName which handles casing correctly var resource = resources.GetByName(name); // Return the Kind label if it exists return Task.FromResult(resource switch { Hardware h => h.Kind, SystemResource s => SystemResource.KindLabel, Service svc => Service.KindLabel, _ => null }); } public Task ResourceExistsAsync(string name) { return Task.FromResult(resources.GetByName(name) != null); } public Task> GetByTagAsync(string name) { return resources.GetByTagAsync(name); } public Task> GetTagsAsync() { return resources.GetTagsAsync(); } }