示例#1
0
        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);
        }