GetSystemServiceTreeUseCase.cs 711 B

123456789101112131415161718192021
  1. using RackPeek.Domain.Helpers;
  2. using RackPeek.Domain.Resources.Hardware;
  3. using RackPeek.Domain.Resources.Services;
  4. namespace RackPeek.Domain.Resources.SystemResources.UseCases;
  5. public class GetSystemServiceTreeUseCase(
  6. ISystemRepository systemRepository,
  7. IServiceRepository serviceRepository) : IUseCase
  8. {
  9. public async Task<SystemDependencyTree?> ExecuteAsync(string systemName)
  10. {
  11. ThrowIfInvalid.ResourceName(systemName);
  12. var system = await systemRepository.GetByNameAsync(systemName);
  13. if (system is null) return null;
  14. var services = await serviceRepository.GetBySystemHostAsync(system.Name);
  15. return new SystemDependencyTree(system, services);
  16. }
  17. }