namespace RackPeek.Domain.Resources.Hardware; public sealed class HardwareSummary { public HardwareSummary( int totalHardware, IReadOnlyDictionary hardwareByKind) { TotalHardware = totalHardware; HardwareByKind = hardwareByKind; } public int TotalHardware { get; } public IReadOnlyDictionary HardwareByKind { get; } } public class GetHardwareUseCaseSummary(IHardwareRepository repository) : IUseCase { public async Task ExecuteAsync() { var totalCountTask = repository.GetCountAsync(); var kindCountTask = repository.GetKindCountAsync(); await Task.WhenAll(totalCountTask, kindCountTask); return new HardwareSummary( totalCountTask.Result, kindCountTask.Result ); } }