GetServiceSummaryUseCase.cs 820 B

12345678910111213141516171819202122232425262728
  1. namespace RackPeek.Domain.Resources.Services.UseCases;
  2. public sealed class AllServicesSummary
  3. {
  4. public int TotalServices { get; }
  5. public int TotalIpAddresses { get; }
  6. public AllServicesSummary(int totalServices, int totalIpAddresses)
  7. {
  8. TotalServices = totalServices;
  9. TotalIpAddresses = totalIpAddresses;
  10. }
  11. }
  12. public class GetServiceSummaryUseCase(IServiceRepository repository) : IUseCase
  13. {
  14. public async Task<AllServicesSummary> ExecuteAsync()
  15. {
  16. var serviceCountTask = repository.GetCountAsync();
  17. var ipAddressCountTask = repository.GetIpAddressCountAsync();
  18. await Task.WhenAll(serviceCountTask, ipAddressCountTask);
  19. return new AllServicesSummary(
  20. serviceCountTask.Result,
  21. ipAddressCountTask.Result
  22. );
  23. }
  24. }