UpsHardwareReport.cs 737 B

1234567891011121314151617181920212223242526272829303132
  1. using RackPeek.Domain.Persistence;
  2. namespace RackPeek.Domain.Resources.Hardware.UpsUnits;
  3. public record UpsHardwareReport(
  4. IReadOnlyList<UpsHardwareRow> UpsUnits
  5. );
  6. public record UpsHardwareRow(
  7. string Name,
  8. string Model,
  9. int Va
  10. );
  11. public class UpsHardwareReportUseCase(IResourceCollection repository) : IUseCase
  12. {
  13. public async Task<UpsHardwareReport> ExecuteAsync()
  14. {
  15. var upsUnits = await repository.GetAllOfTypeAsync<Ups>();
  16. var rows = upsUnits.Select(ups =>
  17. {
  18. return new UpsHardwareRow(
  19. ups.Name,
  20. ups.Model ?? "Unknown",
  21. ups.Va ?? 0
  22. );
  23. }).ToList();
  24. return new UpsHardwareReport(rows);
  25. }
  26. }