GetServiceSummaryUseCase.cs 744 B

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