DescribeSystemUseCase.cs 761 B

12345678910111213141516171819202122232425262728293031
  1. using RackPeek.Domain.Resources.SystemResources;
  2. namespace RackPeek.Domain.Resources.Services.UseCases;
  3. public record ServiceDescription(
  4. string Name,
  5. string? Ip,
  6. int? Port,
  7. string? Protocol,
  8. string? Url,
  9. string? RunsOn
  10. );
  11. public class DescribeServiceUseCase(IServiceRepository repository)
  12. {
  13. public async Task<ServiceDescription?> ExecuteAsync(string name)
  14. {
  15. var service = await repository.GetByNameAsync(name);
  16. if (service is null)
  17. return null;
  18. return new ServiceDescription(
  19. service.Name,
  20. service.Network?.Ip,
  21. service.Network?.Port,
  22. service.Network?.Protocol,
  23. service.Network?.Url,
  24. service.RunsOn
  25. );
  26. }
  27. }