private void ProcessVacancySummaryPage(VacancySummaryPage vacancySummaryPage) { _logger.Info("Retrieving vacancy search page number: {0}/{1}", vacancySummaryPage.PageNumber, vacancySummaryPage.TotalPages); var vacancies = _vacancyIndexDataProvider.GetVacancySummaries(vacancySummaryPage.PageNumber); var apprenticeshipsExtended = _mapper.Map <IEnumerable <ApprenticeshipSummary>, IEnumerable <ApprenticeshipSummaryUpdate> >(vacancies.ApprenticeshipSummaries).ToList(); var traineeshipsExtended = _mapper.Map <IEnumerable <TraineeshipSummary>, IEnumerable <TraineeshipSummaryUpdate> >(vacancies.TraineeshipSummaries).ToList(); _logger.Info("Retrieved vacancy search page number: {0}/{1} with {2} apprenticeships and {3} traineeships", vacancySummaryPage.PageNumber, vacancySummaryPage.TotalPages, apprenticeshipsExtended.Count, traineeshipsExtended.Count); Parallel.ForEach( apprenticeshipsExtended, new ParallelOptions { MaxDegreeOfParallelism = 5 }, apprenticeshipExtended => { apprenticeshipExtended.ScheduledRefreshDateTime = vacancySummaryPage.ScheduledRefreshDateTime; _apprenticeshipSummaryUpdateProcessor.Process(apprenticeshipExtended); }); _logger.Info("Processed {0} apprenticeships", apprenticeshipsExtended.Count); Parallel.ForEach( traineeshipsExtended, new ParallelOptions { MaxDegreeOfParallelism = 5 }, traineeshipExtended => { traineeshipExtended.ScheduledRefreshDateTime = vacancySummaryPage.ScheduledRefreshDateTime; _traineeshipsSummaryUpdateProcessor.Process(traineeshipExtended); }); _logger.Info("Processed {0} traineeships", traineeshipsExtended.Count); _logger.Info("Processed vacancy search page number: {0}/{1}", vacancySummaryPage.PageNumber, vacancySummaryPage.TotalPages); }
public ServiceBusMessageStates Consume(TraineeshipSummaryUpdate message) { _traineeshipsSummaryUpdateProcessor.Process(message); return(ServiceBusMessageStates.Complete); }