public async Task Handle(CloseExpiredVacanciesCommand message, CancellationToken cancellationToken) { var vacancies = (await _query.GetVacanciesByStatusAsync <VacancyIdentifier>(VacancyStatus.Live)).ToList(); var numberClosed = 0; foreach (var vacancy in vacancies.Where(x => x.ClosingDate < _timeProvider.Today)) { _logger.LogInformation($"Closing vacancy {vacancy.VacancyReference} with closing date of {vacancy.ClosingDate}"); await _vacancyService.CloseExpiredVacancy(vacancy.Id); numberClosed++; } _logger.LogInformation("Closed {closedCount} from {liveVacancyCount} live vacancies", numberClosed, vacancies.Count); }