GetHardwareUseCaseSummary.cs 843 B

12345678910111213141516171819202122232425262728293031
  1. namespace RackPeek.Domain.Resources.Hardware;
  2. public sealed class HardwareSummary
  3. {
  4. public HardwareSummary(
  5. int totalHardware,
  6. IReadOnlyDictionary<string, int> hardwareByKind)
  7. {
  8. TotalHardware = totalHardware;
  9. HardwareByKind = hardwareByKind;
  10. }
  11. public int TotalHardware { get; }
  12. public IReadOnlyDictionary<string, int> HardwareByKind { get; }
  13. }
  14. public class GetHardwareUseCaseSummary(IHardwareRepository repository) : IUseCase
  15. {
  16. public async Task<HardwareSummary> ExecuteAsync()
  17. {
  18. var totalCountTask = repository.GetCountAsync();
  19. var kindCountTask = repository.GetKindCountAsync();
  20. await Task.WhenAll(totalCountTask, kindCountTask);
  21. return new HardwareSummary(
  22. totalCountTask.Result,
  23. kindCountTask.Result
  24. );
  25. }
  26. }