public async Task <IEnumerable> GetPayments(DateTime startDate, DateTime endDate) { var payments = _paymentsRepository.GetBetweenDates(startDate, endDate); if (!payments.Any()) { throw new InvalidOperationException( $"No agency payments found between dates {startDate:dd/MM/yyyy} to {endDate:dd/MM/yyyy}"); } var agencyIds = payments.Select(x => x.AgencyId).Distinct().ToList(); var agencies = await _agencyRepository.GetAgenciesForPayments(agencyIds); return(BuildAgencyPayments(payments, agencies)); }