GetServiceSummaryUseCase.cs 821 B

1234567891011121314151617181920212223242526272829
  1. namespace RackPeek.Domain.Resources.Services.UseCases;
  2. public sealed class AllServicesSummary
  3. {
  4. public AllServicesSummary(int totalServices, int totalIpAddresses)
  5. {
  6. TotalServices = totalServices;
  7. TotalIpAddresses = totalIpAddresses;
  8. }
  9. public int TotalServices { get; }
  10. public int TotalIpAddresses { get; }
  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. }