UpsHardwareReport.cs 732 B

1234567891011121314151617181920212223242526272829
  1. using RackPeek.Domain.Persistence;
  2. namespace RackPeek.Domain.Resources.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. public async Task<UpsHardwareReport> ExecuteAsync() {
  13. IReadOnlyList<Ups> upsUnits = await repository.GetAllOfTypeAsync<Ups>();
  14. var rows = upsUnits.Select(ups => {
  15. return new UpsHardwareRow(
  16. ups.Name,
  17. ups.Model ?? "Unknown",
  18. ups.Va ?? 0
  19. );
  20. }).ToList();
  21. return new UpsHardwareReport(rows);
  22. }
  23. }