AccessPointHardwareReport.cs 791 B

123456789101112131415161718192021222324252627282930
  1. using RackPeek.Domain.Resources.Models;
  2. namespace RackPeek.Domain.Resources.Hardware.AccessPoints;
  3. public record AccessPointHardwareReport(
  4. IReadOnlyList<AccessPointHardwareRow> AccessPoints
  5. );
  6. public record AccessPointHardwareRow(
  7. string Name,
  8. string Model,
  9. double SpeedGb
  10. );
  11. public class AccessPointHardwareReportUseCase(IHardwareRepository repository) : IUseCase
  12. {
  13. public async Task<AccessPointHardwareReport> ExecuteAsync()
  14. {
  15. var hardware = await repository.GetAllAsync();
  16. var aps = hardware.OfType<AccessPoint>();
  17. var rows = aps.Select(ap => new AccessPointHardwareRow(
  18. ap.Name,
  19. ap.Model ?? "Unknown",
  20. ap.Speed ?? 0
  21. )).ToList();
  22. return new AccessPointHardwareReport(rows);
  23. }
  24. }