private async Task Handle(IApplicationReviewEvent notification) { _logger.LogInformation("Handling {notificationType} for vacancyReference: {vacancyReference}", notification.GetType().Name, notification?.VacancyReference); var vacancy = await _vacancyRepository.GetVacancyAsync(notification.VacancyReference); var vacancyApplicationReviews = await _applicationReviewQuery.GetForVacancyAsync <ApplicationReview>(vacancy.VacancyReference.Value); var vacancyApplications = new VacancyApplications { VacancyReference = vacancy.VacancyReference.Value, Applications = vacancyApplicationReviews.Select(MapToVacancyApplication).ToList() }; await _writer.UpdateVacancyApplicationsAsync(vacancyApplications); }
public async Task UpdateVacancyApplicationsAsync(long vacancyReference) { _logger.LogInformation("Updating vacancyApplications projection for vacancyReference: {vacancyReference}", vacancyReference); var vacancy = await _vacancyRepository.GetVacancyAsync(vacancyReference); var vacancyApplicationReviews = await _applicationReviewQuery.GetForVacancyAsync <ApplicationReview>(vacancy.VacancyReference.Value); var vacancyApplications = new VacancyApplications { VacancyReference = vacancy.VacancyReference.Value, Applications = vacancyApplicationReviews.Select(MapToVacancyApplication).ToList() }; await _writer.UpdateVacancyApplicationsAsync(vacancyApplications); }