示例#1
0
        public ApprenticeshipVacancyDetailViewModel GetVacancyDetailViewModel(Guid?candidateId, int vacancyId)
        {
            _logger.Debug(
                "Calling ApprenticeshipVacancyDetailProvider to get the Vacancy detail View Model for candidate ID: {0}, vacancy ID: {1}.",
                candidateId, vacancyId);

            try
            {
                var vacancyDetail = candidateId.HasValue ?
                                    _candidateService.GetApprenticeshipVacancyDetail(candidateId.Value, vacancyId) :
                                    _apprenticeshipSearchService.GetVacancyDetails(vacancyId);

                if (vacancyDetail == null)
                {
                    return(null);
                }

                var vacancyDetailViewModel = _apprenticeshipSearchMapper.Map <ApprenticeshipVacancyDetail, ApprenticeshipVacancyDetailViewModel>(vacancyDetail);

                if (candidateId == null)
                {
                    return(vacancyDetailViewModel);
                }

                var applicationDetails = _candidateService.GetApplication(candidateId.Value, vacancyId);
                if (applicationDetails == null)
                {
                    return(vacancyDetailViewModel);
                }

                // If candidate has applied for vacancy, include the details in the view model.
                vacancyDetailViewModel.CandidateApplicationStatus = applicationDetails.Status;
                vacancyDetailViewModel.DateApplied = applicationDetails.DateApplied;

                return(vacancyDetailViewModel);
            }
            catch (CustomException e)
            {
                var message = string.Format("Get Apprenticeship Vacancy View Model failed for candidate ID: {0}, vacancy ID: {1}.",
                                            candidateId, vacancyId);

                _logger.Error(message, e);

                return(new ApprenticeshipVacancyDetailViewModel(ApprenticeshipVacancyDetailPageMessages.GetVacancyDetailFailed));
            }
            catch (Exception e)
            {
                var message = string.Format("Get Apprenticeship Vacancy View Model failed for candidate ID: {0}, vacancy ID: {1}.",
                                            candidateId, vacancyId);

                _logger.Error(message, e);
                throw;
            }
        }
        public VacancyDetailViewModel GetVacancyDetailViewModel(Guid?candidateId, int vacancyId)
        {
            _logger.Debug(
                "Calling TraineeshipVacancyDetailProvider to get the Vacancy detail View Model for candidate ID: {0}, vacancy ID: {1}.",
                candidateId, vacancyId);

            try
            {
                var vacancyDetail = candidateId.HasValue ?
                                    _candidateService.GetTraineeshipVacancyDetail(candidateId.Value, vacancyId) :
                                    _vacancySearchService.GetVacancyDetails(vacancyId);

                if (vacancyDetail == null)
                {
                    return(null);
                }

                var vacancyDetailViewModel = _mapper.Map <TraineeshipVacancyDetail, VacancyDetailViewModel>(vacancyDetail);

                if (candidateId == null)
                {
                    return(vacancyDetailViewModel);
                }

                var traineeshipApplication = _candidateService.GetTraineeshipApplication(candidateId.Value, vacancyId);

                if (traineeshipApplication == null)
                {
                    return(vacancyDetailViewModel);
                }

                // If candidate has applied for vacancy, include the details in the view model.
                vacancyDetailViewModel.DateApplied = traineeshipApplication.DateApplied;

                return(vacancyDetailViewModel);
            }
            catch (CustomException e)
            {
                var message =
                    string.Format("Get Traineeship Vacancy View Model failed for candidate ID: {0}, vacancy ID: {1}.",
                                  candidateId, vacancyId);

                _logger.Error(message, e);

                return(new VacancyDetailViewModel(TraineeshipVacancyDetailPageMessages.GetVacancyDetailFailed));
            }
            catch (Exception e)
            {
                var message =
                    string.Format("Get Traineeship Vacancy View Model failed for candidate ID: {0}, vacancy ID: {1}.",
                                  candidateId, vacancyId);

                _logger.Error(message, e);
                throw;
            }
        }