Selaa lähdekoodia

Removed unused Repos

Tim Jones 1 kuukausi sitten
vanhempi
commit
712528f087
26 muutettua tiedostoa jossa 90 lisäystä ja 229 poistoa
  1. 3 0
      RackPeek.Domain/Persistence/IResourceCollection.cs
  2. 9 0
      RackPeek.Domain/Persistence/InMemoryResourceCollection.cs
  3. 6 0
      RackPeek.Domain/Persistence/Yaml/YamlResourceCollection.cs
  4. 1 44
      RackPeek.Domain/Persistence/YamlHardwareRepository.cs
  5. 0 39
      RackPeek.Domain/Persistence/YamlResourceRepository.cs
  6. 0 52
      RackPeek.Domain/Persistence/YamlServerRepository.cs
  7. 7 8
      RackPeek.Domain/Resources/Hardware/GetHardwareSystemTreeUseCase.cs
  8. 1 1
      RackPeek.Domain/Resources/Hardware/IHardwareRepository.cs
  9. 0 6
      RackPeek.Domain/Resources/IResourceRepository.cs
  10. 1 11
      RackPeek.Domain/Resources/Services/IServiceRepository.cs
  11. 1 1
      RackPeek.Domain/Resources/SystemResources/ISystemRepository.cs
  12. 5 5
      RackPeek.Domain/Resources/SystemResources/UseCases/GetSystemServiceTreeUseCase.cs
  13. 0 16
      RackPeek.Domain/ServiceCollectionExtensions.cs
  14. 6 7
      Shared.Rcl/Components/ResourceBreadCrumbComponent.razor
  15. 3 2
      Shared.Rcl/Components/TagListComponent.razor
  16. 2 1
      Shared.Rcl/Components/TagPage.razor
  17. 3 2
      Shared.Rcl/Hardware/HardwareDetailsPage.razor
  18. 3 2
      Shared.Rcl/Modals/HardwareSelectionModal.razor
  19. 3 2
      Shared.Rcl/Modals/SystemSelectionModal.razor
  20. 3 2
      Shared.Rcl/Services/ServiceDetailsPage.razor
  21. 5 4
      Shared.Rcl/Services/ServicesListComponent.razor
  22. 3 2
      Shared.Rcl/Systems/SystemsDetailsPage.razor
  23. 7 4
      Shared.Rcl/Systems/SystemsListComponent.razor
  24. 11 11
      Tests/Yaml/HardwareDeserializationTests.cs
  25. 3 3
      Tests/Yaml/ServiceDeserializationTests.cs
  26. 4 4
      Tests/Yaml/SystemDeserializationTests.cs

+ 3 - 0
RackPeek.Domain/Persistence/IResourceCollection.cs

@@ -16,6 +16,7 @@ public interface IResourceCollection
     Task UpdateAsync(Resource resource);
     Task DeleteAsync(string name);
     Task<Resource?> GetByNameAsync(string name);
+    Task<T?> GetByNameAsync<T>(string name) where T : Resource;
 
     Resource? GetByName(string name);
     Task<bool> Exists(string name);
@@ -26,4 +27,6 @@ public interface IResourceCollection
 
     Task<IReadOnlyList<T>> GetAllOfTypeAsync<T>();
     Task<IReadOnlyList<Resource>>  GetDependantsAsync(string name);
+    
+    
 }

+ 9 - 0
RackPeek.Domain/Persistence/InMemoryResourceCollection.cs

@@ -134,6 +134,15 @@ public sealed class InMemoryResourceCollection(IEnumerable<Resource>? seed = nul
         }
         
     }
+    
+    public Task<T?> GetByNameAsync<T>(string name) where T : Resource
+    {
+        lock (_lock)
+        {
+            var resource = _resources.FirstOrDefault(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
+            return Task.FromResult<T?>(resource as T);
+        }
+    }
 
     public Resource? GetByName(string name)
     {

+ 6 - 0
RackPeek.Domain/Persistence/Yaml/YamlResourceCollection.cs

@@ -84,6 +84,12 @@ public sealed class YamlResourceCollection(
             r.Name.Equals(name, StringComparison.OrdinalIgnoreCase)));
     }
 
+    public Task<T?> GetByNameAsync<T>(string name) where T : Resource
+    {
+        var resource = resourceCollection.Resources.FirstOrDefault(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
+        return Task.FromResult<T?>(resource as T);
+    }
+
     public Resource? GetByName(string name) =>
         resourceCollection.Resources.FirstOrDefault(r =>
             r.Name.Equals(name, StringComparison.OrdinalIgnoreCase));

+ 1 - 44
RackPeek.Domain/Persistence/YamlHardwareRepository.cs

@@ -16,17 +16,7 @@ public class YamlHardwareRepository(IResourceCollection resources) : IHardwareRe
             .GroupBy(h => h.Kind)
             .ToDictionary(k => k.Key, v => v.Count()));
     }
-
-    public Task<IReadOnlyList<Hardware>> GetAllAsync()
-    {
-        return Task.FromResult(resources.HardwareResources);
-    }
-
-    public Task<Hardware?> GetByNameAsync(string name)
-    {
-        return Task.FromResult(resources.GetByName(name) as Hardware);
-    }
-
+    
     public Task<List<HardwareTree>> GetTreeAsync()
     {
         var hardwareTree = new List<HardwareTree>();
@@ -72,37 +62,4 @@ public class YamlHardwareRepository(IResourceCollection resources) : IHardwareRe
 
         return Task.FromResult(hardwareTree);
     }
-
-
-    public async Task AddAsync(Hardware hardware)
-    {
-        if (resources.HardwareResources.Any(r =>
-                r.Name.Equals(hardware.Name, StringComparison.OrdinalIgnoreCase)))
-            throw new InvalidOperationException(
-                $"Hardware with name '{hardware.Name}' already exists.");
-
-        await resources.AddAsync(hardware);
-    }
-
-    public async Task UpdateAsync(Hardware hardware)
-    {
-        var existing = resources.HardwareResources
-            .FirstOrDefault(r => r.Name.Equals(hardware.Name, StringComparison.OrdinalIgnoreCase));
-
-        if (existing == null)
-            throw new InvalidOperationException($"Hardware '{hardware.Name}' not found.");
-
-        await resources.UpdateAsync(hardware);
-    }
-
-    public async Task DeleteAsync(string name)
-    {
-        var existing = resources.HardwareResources
-            .FirstOrDefault(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
-
-        if (existing == null)
-            throw new InvalidOperationException($"Hardware '{name}' not found.");
-
-        await resources.DeleteAsync(name);
-    }
 }

+ 0 - 39
RackPeek.Domain/Persistence/YamlResourceRepository.cs

@@ -1,39 +0,0 @@
-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<string?> 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<bool> ResourceExistsAsync(string name)
-    {
-        return Task.FromResult(resources.GetByName(name) != null);
-    }
-
-    public Task<IReadOnlyList<Resource>> GetByTagAsync(string name)
-    {
-        return resources.GetByTagAsync(name);
-    }
-
-    public Task<Dictionary<string, int>> GetTagsAsync()
-    {
-        return resources.GetTagsAsync();
-    }
-}

+ 0 - 52
RackPeek.Domain/Persistence/YamlServerRepository.cs

@@ -1,52 +0,0 @@
-using RackPeek.Domain.Resources.Hardware;
-using RackPeek.Domain.Resources.Models;
-using RackPeek.Domain.Resources.Services;
-
-namespace RackPeek.Domain.Persistence;
-
-public class YamlHardwareRepo<T>(IResourceCollection resources) : IResourceRepo<T> where T : Hardware
-{
-    public Task<IReadOnlyList<T>> GetAllAsync()
-    {
-        var servers = resources.HardwareResources.OfType<T>().ToList();
-        return Task.FromResult<IReadOnlyList<T>>(servers.AsReadOnly());
-    }
-
-    public async Task AddAsync(T service)
-    {
-        if (await resources.Exists(service.Name))
-            throw new InvalidOperationException(
-                $"Resource with name '{service.Name}' already exists.");
-
-        await resources.AddAsync(service);
-    }
-    
-    public async Task UpdateAsync(T service)
-    {
-        var existing = resources.HardwareResources
-            .FirstOrDefault(r => r.Name.Equals(service.Name, StringComparison.OrdinalIgnoreCase));
-        
-        if (existing is not T)
-            throw new InvalidOperationException($"'{service.Name}' not found.");
-
-        await resources.UpdateAsync(service);
-        
-    }
-
-    public async Task DeleteAsync(string name)
-    {
-        var existing = resources.HardwareResources
-            .FirstOrDefault(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
-
-        if (existing is not Server)
-            throw new InvalidOperationException($"'{name}' not found.");
-
-        await resources.DeleteAsync(name);
-        
-    }
-
-    public Task<T?> GetByNameAsync(string name)
-    {
-        return Task.FromResult(resources.GetByName(name) as T);
-    }
-}

+ 7 - 8
RackPeek.Domain/Resources/Hardware/GetHardwareSystemTreeUseCase.cs

@@ -1,19 +1,18 @@
 using RackPeek.Domain.Helpers;
+using RackPeek.Domain.Persistence;
 using RackPeek.Domain.Resources.Services;
 using RackPeek.Domain.Resources.SystemResources;
 
 namespace RackPeek.Domain.Resources.Hardware;
 
 public class GetHardwareSystemTreeUseCase(
-    IHardwareRepository hardwareRepository,
-    ISystemRepository systemRepository,
-    IServiceRepository serviceRepository) : IUseCase
+    IResourceCollection repo) : IUseCase
 {
     public async Task<HardwareDependencyTree> ExecuteAsync(string hardwareName)
     {
         ThrowIfInvalid.ResourceName(hardwareName);
 
-        var server = await hardwareRepository.GetByNameAsync(hardwareName);
+        var server = await repo.GetByNameAsync(hardwareName) as Models.Hardware;
         if (server is null)
             throw new NotFoundException($"Hardware '{hardwareName}' not found.");
 
@@ -22,19 +21,19 @@ public class GetHardwareSystemTreeUseCase(
 
     private async Task<HardwareDependencyTree> BuildDependencyTreeAsync(Models.Hardware server)
     {
-        var systems = await systemRepository.GetByPhysicalHostAsync(server.Name);
+        var systems = await repo.GetDependantsAsync(server.Name);
 
         var systemTrees = new List<SystemDependencyTree>();
-        foreach (var system in systems) systemTrees.Add(await BuildSystemDependencyTreeAsync(system));
+        foreach (var system in systems.OfType<SystemResource>()) systemTrees.Add(await BuildSystemDependencyTreeAsync(system));
 
         return new HardwareDependencyTree(server, systemTrees);
     }
 
     private async Task<SystemDependencyTree> BuildSystemDependencyTreeAsync(SystemResource system)
     {
-        var services = await serviceRepository.GetBySystemHostAsync(system.Name);
+        var services = await repo.GetDependantsAsync(system.Name);
 
-        return new SystemDependencyTree(system, services);
+        return new SystemDependencyTree(system, services.OfType<Service>());
     }
 }
 

+ 1 - 1
RackPeek.Domain/Resources/Hardware/IHardwareRepository.cs

@@ -3,7 +3,7 @@ using RackPeek.Domain.Resources.SystemResources;
 
 namespace RackPeek.Domain.Resources.Hardware;
 
-public interface IHardwareRepository : IResourceRepo<Models.Hardware> 
+public interface IHardwareRepository
 {
     Task<int> GetCountAsync();
     Task<Dictionary<string, int>> GetKindCountAsync();

+ 0 - 6
RackPeek.Domain/Resources/IResourceRepository.cs

@@ -2,11 +2,5 @@ namespace RackPeek.Domain.Resources;
 
 public interface IResourceRepository
 {
-    public Task<string?> GetResourceKindAsync(string name);
-    public Task<bool> ResourceExistsAsync(string name);
-    
-    public Task<IReadOnlyList<Resource>> GetByTagAsync(string name);
-    public Task<Dictionary<string, int>> GetTagsAsync();
-
 
 }

+ 1 - 11
RackPeek.Domain/Resources/Services/IServiceRepository.cs

@@ -1,19 +1,9 @@
 namespace RackPeek.Domain.Resources.Services;
 
-public interface IServiceRepository : IResourceRepo<Service> 
+public interface IServiceRepository
 {
     Task<int> GetCountAsync();
     Task<int> GetIpAddressCountAsync();
 
     Task<IReadOnlyList<Service>> GetBySystemHostAsync(string name);
 }
-
-
-public interface IResourceRepo<T> where T : Resource
-{
-    Task<IReadOnlyList<T>> GetAllAsync();
-    Task AddAsync(T service);
-    Task UpdateAsync(T service);
-    Task DeleteAsync(string name);
-    Task<T?> GetByNameAsync(string name);
-}

+ 1 - 1
RackPeek.Domain/Resources/SystemResources/ISystemRepository.cs

@@ -2,7 +2,7 @@ using RackPeek.Domain.Resources.Services;
 
 namespace RackPeek.Domain.Resources.SystemResources;
 
-public interface ISystemRepository : IResourceRepo<SystemResource> 
+public interface ISystemRepository
 {
     Task<int> GetSystemCountAsync();
     Task<Dictionary<string, int>> GetSystemTypeCountAsync();

+ 5 - 5
RackPeek.Domain/Resources/SystemResources/UseCases/GetSystemServiceTreeUseCase.cs

@@ -1,21 +1,21 @@
 using RackPeek.Domain.Helpers;
+using RackPeek.Domain.Persistence;
 using RackPeek.Domain.Resources.Hardware;
 using RackPeek.Domain.Resources.Services;
 
 namespace RackPeek.Domain.Resources.SystemResources.UseCases;
 
 public class GetSystemServiceTreeUseCase(
-    ISystemRepository systemRepository,
-    IServiceRepository serviceRepository) : IUseCase
+    IResourceCollection repo) : IUseCase
 {
     public async Task<SystemDependencyTree> ExecuteAsync(string name)
     {
         name = Normalize.SystemName(name);
         ThrowIfInvalid.ResourceName(name);
-        var system = await systemRepository.GetByNameAsync(name);
+        var system = await repo.GetByNameAsync(name) as SystemResource;
         if (system is null) throw new NotFoundException($"System '{name}' not found.");
-        var services = await serviceRepository.GetBySystemHostAsync(system.Name);
+        var services = await repo.GetDependantsAsync(system.Name);
 
-        return new SystemDependencyTree(system, services);
+        return new SystemDependencyTree(system, services.OfType<Service>());
     }
 }

+ 0 - 16
RackPeek.Domain/ServiceCollectionExtensions.cs

@@ -75,22 +75,6 @@ public static class ServiceCollectionExtensions
         services.AddScoped<IHardwareRepository, YamlHardwareRepository>();
         services.AddScoped<ISystemRepository, YamlSystemRepository>();
         services.AddScoped<IServiceRepository, YamlServiceRepository>();
-        services.AddScoped<IResourceRepository, YamlResourceRepository>();
-        
-        services.AddScoped<IResourceRepo<AccessPoint>, YamlHardwareRepo<AccessPoint>>();
-        services.AddScoped<IResourceRepo<Desktop>, YamlHardwareRepo<Desktop>>();
-        services.AddScoped<IResourceRepo<Firewall>, YamlHardwareRepo<Firewall>>();
-        services.AddScoped<IResourceRepo<Laptop>, YamlHardwareRepo<Laptop>>();
-        services.AddScoped<IResourceRepo<Router>, YamlHardwareRepo<Router>>();
-        services.AddScoped<IResourceRepo<Server>, YamlHardwareRepo<Server>>();
-        services.AddScoped<IResourceRepo<Switch>, YamlHardwareRepo<Switch>>();
-        services.AddScoped<IResourceRepo<Ups>, YamlHardwareRepo<Ups>>();
-        
-        services.AddScoped<IResourceRepo<SystemResource>, YamlSystemRepository>();
-        services.AddScoped<IResourceRepo<Service>, YamlServiceRepository>();
-        
-
-
         return services;
     }
     

+ 6 - 7
Shared.Rcl/Components/ResourceBreadCrumbComponent.razor

@@ -1,9 +1,8 @@
-@using RackPeek.Domain.Resources.Hardware
+@using RackPeek.Domain.Persistence
+@using RackPeek.Domain.Resources.Hardware
 @using RackPeek.Domain.Resources.Services
 @using RackPeek.Domain.Resources.SystemResources
-@inject IHardwareRepository HardwareRepository
-@inject ISystemRepository SystemRepository
-@inject IServiceRepository ServiceRepository
+@inject IResourceCollection Repo
 @inject NavigationManager Nav
 
 <div class="text-sm text-zinc-300 flex gap-1 items-center">
@@ -52,7 +51,7 @@
 
     private async Task BuildSystemPath(string systemName)
     {
-        var system = await SystemRepository.GetByNameAsync(systemName);
+        var system = await Repo.GetByNameAsync(systemName);
 
         if (system?.RunsOn is not null)
         {
@@ -70,11 +69,11 @@
 
     private async Task BuildServicePath(string serviceName)
     {
-        var service = await ServiceRepository.GetByNameAsync(serviceName);
+        var service = await Repo.GetByNameAsync(serviceName);
 
         if (service?.RunsOn is not null)
         {
-            var system = await SystemRepository.GetByNameAsync(service.RunsOn);
+            var system = await Repo.GetByNameAsync(service.RunsOn);
 
             if (system?.RunsOn is not null)
             {

+ 3 - 2
Shared.Rcl/Components/TagListComponent.razor

@@ -1,6 +1,7 @@
-@using RackPeek.Domain.Resources
+@using RackPeek.Domain.Persistence
+@using RackPeek.Domain.Resources
 @using RackPeek.Domain.UseCases.Tags
-@inject IResourceRepository TagRepository
+@inject IResourceCollection TagRepository
 @inject NavigationManager Nav
 
 <div>

+ 2 - 1
Shared.Rcl/Components/TagPage.razor

@@ -1,9 +1,10 @@
 @page "/tags/{TagName}"
 
+@using RackPeek.Domain.Persistence
 @using RackPeek.Domain.Resources
 @using RackPeek.Domain.Resources.SystemResources
 
-@inject IResourceRepository ResourceRepository
+@inject IResourceCollection ResourceRepository
 @inject NavigationManager Nav
 
 <PageTitle>Tag: @TagName</PageTitle>

+ 3 - 2
Shared.Rcl/Hardware/HardwareDetailsPage.razor

@@ -1,4 +1,5 @@
 @page "/resources/hardware/{HardwareName}"
+@using RackPeek.Domain.Persistence
 @using RackPeek.Domain.Resources.Hardware
 @using RackPeek.Domain.Resources.Models
 
@@ -13,7 +14,7 @@
 @using Shared.Rcl.Routers
 @using Shared.Rcl.Ups
 @using Shared.Rcl.Systems
-@inject IHardwareRepository HardwareRepository
+@inject IResourceCollection Repo
 @inject GetHardwareSystemTreeUseCase GetHardwareSystemTreeUseCase
 @inject NavigationManager Nav
 
@@ -103,7 +104,7 @@
 
     protected override async Task OnInitializedAsync()
     {
-        _hardware = await HardwareRepository.GetByNameAsync(HardwareName);
+        _hardware = await Repo.GetByNameAsync(HardwareName) as Hardware;
         _tree = null;
         if (!string.IsNullOrEmpty(_hardware?.Name))
         {

+ 3 - 2
Shared.Rcl/Modals/HardwareSelectionModal.razor

@@ -1,7 +1,8 @@
 @using System.ComponentModel.DataAnnotations
+@using RackPeek.Domain.Persistence
 @using RackPeek.Domain.Resources.Hardware
 @using RackPeek.Domain.Resources.Models
-@inject IHardwareRepository HardwareRepository
+@inject IResourceCollection Repo
 
 @if (IsOpen)
 {
@@ -118,7 +119,7 @@
     {
         if (IsOpen)
         {
-            _hardware = (await HardwareRepository.GetAllAsync())
+            _hardware = (await Repo.GetAllOfTypeAsync<Hardware>())
                 .OrderBy(h => h.Kind)
                 .ThenBy(h => h.Name)
                 .ToList();

+ 3 - 2
Shared.Rcl/Modals/SystemSelectionModal.razor

@@ -1,6 +1,7 @@
 @using System.ComponentModel.DataAnnotations
+@using RackPeek.Domain.Persistence
 @using RackPeek.Domain.Resources.SystemResources
-@inject ISystemRepository SystemRepository
+@inject IResourceCollection Repo
 
 @if (IsOpen)
 {
@@ -117,7 +118,7 @@
     {
         if (IsOpen)
         {
-            _systems = (await SystemRepository.GetAllAsync())
+            _systems = (await Repo.GetAllOfTypeAsync<SystemResource>())
                 .OrderBy(s => s.Type)
                 .ThenBy(s => s.Name)
                 .ToList();

+ 3 - 2
Shared.Rcl/Services/ServiceDetailsPage.razor

@@ -1,9 +1,10 @@
 @page "/resources/services/{ServiceName}"
+@using RackPeek.Domain.Persistence
 @using RackPeek.Domain.Resources.Services
 @using RackPeek.Domain.Resources.Services.UseCases
 @using Shared.Rcl.Components
 @using Shared.Rcl.Components
-@inject IServiceRepository ServiceRepository
+@inject IResourceCollection Repo
 @inject UpdateServiceUseCase UpdateServiceUseCase
 @inject NavigationManager NavigationManager
 
@@ -40,7 +41,7 @@
 
     protected override async Task OnInitializedAsync()
     {
-        _service = await ServiceRepository.GetByNameAsync(ServiceName);
+        _service = await Repo.GetByNameAsync<Service>(ServiceName);
         _loading = false;
     }
 

+ 5 - 4
Shared.Rcl/Services/ServicesListComponent.razor

@@ -1,6 +1,7 @@
-@using RackPeek.Domain.Resources.Services
+@using RackPeek.Domain.Persistence
+@using RackPeek.Domain.Resources.Services
 @using RackPeek.Domain.Resources.Services.UseCases
-@inject IServiceRepository ServiceRepository
+@inject IResourceCollection Repo
 @inject UpdateServiceUseCase UpdateServiceUseCase
 @inject NavigationManager Nav
 
@@ -36,7 +37,7 @@
 
     protected override async Task OnInitializedAsync()
     {
-        _services = await ServiceRepository.GetAllAsync();
+        _services = await Repo.GetAllOfTypeAsync<Service>();
     }
 
     async Task UpdateService(ServiceEditModel edit)
@@ -60,7 +61,7 @@
 
     private async Task Callback(string obj)
     {
-        _services = await ServiceRepository.GetAllAsync();
+        _services = await Repo.GetAllOfTypeAsync<Service>();
     }
 
 }

+ 3 - 2
Shared.Rcl/Systems/SystemsDetailsPage.razor

@@ -1,9 +1,10 @@
 @page "/resources/systems/{SystemName}"
+@using RackPeek.Domain.Persistence
 @using RackPeek.Domain.Resources.Hardware
 @using RackPeek.Domain.Resources.SystemResources
 @using RackPeek.Domain.Resources.SystemResources.UseCases
 @using Shared.Rcl.Services
-@inject ISystemRepository SystemRepository
+@inject IResourceCollection Repo
 @inject UpdateSystemUseCase UpdateSystemUseCase
 @inject GetSystemServiceTreeUseCase GetSystemServiceTreeUseCase
 @inject NavigationManager NavigationManager
@@ -57,7 +58,7 @@
 
     protected override async Task OnInitializedAsync()
     {
-        _system = await SystemRepository.GetByNameAsync(SystemName);
+        _system = await Repo.GetByNameAsync<SystemResource>(SystemName);
         _tree = null;
         if (!string.IsNullOrEmpty(_system?.Name))
         {

+ 7 - 4
Shared.Rcl/Systems/SystemsListComponent.razor

@@ -1,6 +1,9 @@
-@using RackPeek.Domain.Resources.SystemResources
+@using RackPeek.Domain.Persistence
+@using RackPeek.Domain.Resources.SystemResources
 @using RackPeek.Domain.Resources.SystemResources.UseCases
-@inject ISystemRepository SystemRepository
+@inject IResourceCollection Repo
+@inject ISystemRepository SystemRepo
+
 @inject UpdateSystemUseCase UpdateSystemUseCase
 @inject NavigationManager Nav
 
@@ -52,11 +55,11 @@
 
         if (string.IsNullOrEmpty(type) && string.IsNullOrEmpty(os))
         {
-            _systems = await SystemRepository.GetAllAsync();
+            _systems = await Repo.GetAllOfTypeAsync<SystemResource>();
         }
         else
         {
-            _systems = await SystemRepository.GetFilteredAsync(
+            _systems = await SystemRepo.GetFilteredAsync(
             type,
             os
             );

+ 11 - 11
Tests/Yaml/HardwareDeserializationTests.cs

@@ -8,7 +8,7 @@ namespace Tests.Yaml;
 
 public class HardwareDeserializationTests
 {
-    public async Task<IHardwareRepository> CreateSut(string yaml)
+    public async Task<IResourceCollection> CreateSut(string yaml)
     {
         var tempDir = Path.Combine(
             Path.GetTempPath(),
@@ -22,7 +22,7 @@ public class HardwareDeserializationTests
 
         var yamlResourceCollection = new YamlResourceCollection(filePath, new PhysicalTextFileStore(), new ResourceCollection());
         await yamlResourceCollection.LoadAsync();
-        return new YamlHardwareRepository(yamlResourceCollection);
+        return yamlResourceCollection;
     }
 
 
@@ -46,7 +46,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
         // Then
         var hardware = Assert.Single(resources);
@@ -88,7 +88,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then
@@ -162,7 +162,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then
@@ -212,7 +212,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then
@@ -262,7 +262,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then
@@ -319,7 +319,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then
@@ -380,7 +380,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then
@@ -424,7 +424,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then
@@ -454,7 +454,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Hardware>();
 
 
         // Then

+ 3 - 3
Tests/Yaml/ServiceDeserializationTests.cs

@@ -7,7 +7,7 @@ namespace Tests.Yaml;
 
 public class ServiceDeserializationTests
 {
-    public static async Task<IServiceRepository> CreateSut(string yaml)
+    public static async Task<IResourceCollection> CreateSut(string yaml)
     {
         var tempDir = Path.Combine(
             Path.GetTempPath(),
@@ -22,7 +22,7 @@ public class ServiceDeserializationTests
         var yamlResourceCollection = new YamlResourceCollection(filePath, new PhysicalTextFileStore(), new ResourceCollection());
         await yamlResourceCollection.LoadAsync();
 
-        return new YamlServiceRepository(yamlResourceCollection);
+        return yamlResourceCollection;
     }
 
 
@@ -45,7 +45,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<Service>();
 
         // Then
         var resource = Assert.Single(resources);

+ 4 - 4
Tests/Yaml/SystemDeserializationTests.cs

@@ -7,7 +7,7 @@ namespace Tests.Yaml;
 
 public class SystemDeserializationTests
 {
-    public static async Task<ISystemRepository> CreateSut(string yaml)
+    public static async Task<IResourceCollection> CreateSut(string yaml)
     {
         var tempDir = Path.Combine(
             Path.GetTempPath(),
@@ -22,8 +22,8 @@ public class SystemDeserializationTests
         var yamlResourceCollection = new YamlResourceCollection(filePath, new PhysicalTextFileStore(), new ResourceCollection());
         await yamlResourceCollection.LoadAsync();
 
-        
-        return new YamlSystemRepository(yamlResourceCollection);
+
+        return yamlResourceCollection;
     }
 
     [Fact]
@@ -48,7 +48,7 @@ resources:
         var sut = await CreateSut(yaml);
 
         // When
-        var resources = await sut.GetAllAsync();
+        var resources = await sut.GetAllOfTypeAsync<SystemResource>();
 
         // Then
         var resource = Assert.Single(resources);