public WhatHappensNextViewModel GetWhatHappensNextViewModel(Guid candidateId, int vacancyId) { _logger.Debug( "Calling TraineeshipApplicationProvider to get the What Happens Next data for candidate ID: {0}, vacancy ID: {1}.", candidateId, vacancyId); try { var vacancyDetailViewModel = _traineeshipVacancyDetailProvider.GetVacancyDetailViewModel(candidateId, vacancyId); if (vacancyDetailViewModel.HasError()) { return(new WhatHappensNextViewModel(vacancyDetailViewModel.ViewModelMessage)); } var candidate = _candidateService.GetCandidate(candidateId); return(new WhatHappensNextViewModel { VacancyReference = vacancyDetailViewModel.VacancyReference, VacancyTitle = vacancyDetailViewModel.Title, SentEmail = candidate.CommunicationPreferences.AllowEmail, ProviderContactInfo = vacancyDetailViewModel.Contact }); } catch (Exception e) { var message = string.Format("Get What Happens Next View Model failed for candidate ID: {0}, vacancy ID: {1}.", candidateId, vacancyId); _logger.Error(message, e); return(new WhatHappensNextViewModel(MyApplicationsPageMessages.CreateOrRetrieveApplicationFailed)); } }
public MediatorResponse TraineeshipVacancyDetails(Guid candidateId, int vacancyId) { var vacancyDetailViewModel = _traineeshipVacancyDetailProvider.GetVacancyDetailViewModel(candidateId, vacancyId); if (vacancyDetailViewModel == null || vacancyDetailViewModel.VacancyStatus == VacancyStatuses.Unavailable) { return(GetMediatorResponse(AccountMediatorCodes.VacancyDetails.Unavailable, MyApplicationsPageMessages.ApprenticeshipNoLongerAvailable, UserMessageLevel.Warning)); } if (vacancyDetailViewModel.HasError()) { return(GetMediatorResponse(AccountMediatorCodes.VacancyDetails.Error, vacancyDetailViewModel.ViewModelMessage, UserMessageLevel.Error)); } return(GetMediatorResponse(AccountMediatorCodes.VacancyDetails.Available)); }
public MediatorResponse <VacancyDetailViewModel> Details(string vacancyIdString, Guid?candidateId, string searchReturnUrl) { int vacancyId; if (!TryParseVacancyId(vacancyIdString, out vacancyId)) { return(GetMediatorResponse <VacancyDetailViewModel>(TraineeshipSearchMediatorCodes.Details.VacancyNotFound)); } var vacancyDetailViewModel = _traineeshipVacancyDetailProvider.GetVacancyDetailViewModel(candidateId, vacancyId); if (vacancyDetailViewModel == null || vacancyDetailViewModel.VacancyStatus == VacancyStatuses.Unavailable) { return(GetMediatorResponse <VacancyDetailViewModel>(TraineeshipSearchMediatorCodes.Details.VacancyNotFound)); } if (vacancyDetailViewModel.HasError()) { return(GetMediatorResponse(TraineeshipSearchMediatorCodes.Details.VacancyHasError, vacancyDetailViewModel, vacancyDetailViewModel.ViewModelMessage, UserMessageLevel.Warning)); } var distance = UserDataProvider.Pop(CandidateDataItemNames.VacancyDistance); var lastVacancyId = UserDataProvider.Pop(CandidateDataItemNames.LastViewedVacancyId); if (HasToPopulateDistance(vacancyId, distance, lastVacancyId)) { vacancyDetailViewModel.Distance = distance; UserDataProvider.Push(CandidateDataItemNames.VacancyDistance, distance); } vacancyDetailViewModel.SearchReturnUrl = searchReturnUrl; UserDataProvider.Push(CandidateDataItemNames.LastViewedVacancyId, vacancyId.ToString(CultureInfo.InvariantCulture)); return(GetMediatorResponse(TraineeshipSearchMediatorCodes.Details.Ok, vacancyDetailViewModel)); }