AccessPointHardwareReport.cs 760 B

1234567891011121314151617181920212223242526
  1. using RackPeek.Domain.Persistence;
  2. namespace RackPeek.Domain.Resources.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(IResourceCollection repository) : IUseCase {
  12. public async Task<AccessPointHardwareReport> ExecuteAsync() {
  13. IReadOnlyList<AccessPoint> aps = await repository.GetAllOfTypeAsync<AccessPoint>();
  14. var rows = aps.Select(ap => new AccessPointHardwareRow(
  15. ap.Name,
  16. ap.Model ?? "Unknown",
  17. ap.Speed ?? 0
  18. )).ToList();
  19. return new AccessPointHardwareReport(rows);
  20. }
  21. }