DescribeSystemUseCase.cs 744 B

12345678910111213141516171819202122232425262728293031
  1. namespace RackPeek.Domain.Resources.SystemResources.UseCases;
  2. public record SystemDescription(
  3. string Name,
  4. string? Type,
  5. string? Os,
  6. int Cores,
  7. int RamGb,
  8. int TotalStorageGb,
  9. string? RunsOn
  10. );
  11. public class DescribeSystemUseCase(ISystemRepository repository)
  12. {
  13. public async Task<SystemDescription?> ExecuteAsync(string name)
  14. {
  15. var system = await repository.GetByNameAsync(name);
  16. if (system is null)
  17. return null;
  18. return new SystemDescription(
  19. system.Name,
  20. system.Type,
  21. system.Os,
  22. system.Cores ?? 0,
  23. system.Ram ?? 0,
  24. system.Drives?.Sum(d => d.Size) ?? 0,
  25. system.RunsOn
  26. );
  27. }
  28. }