public ApprenticeshipApplicationViewModel SubmitApplication(Guid candidateId, int vacancyId) { _logger.Debug( "Calling ApprenticeshipApplicationProvider to submit the Application for candidate ID: {0}, vacancy ID: {1}.", candidateId, vacancyId); var model = new ApprenticeshipApplicationViewModel(); try { model = GetOrCreateApplicationViewModel(candidateId, vacancyId); if (model.HasError()) { return(model); } _candidateService.SubmitApplication(candidateId, vacancyId); _logger.Debug("Application submitted for candidate ID: {0}, vacancy ID: {1}.", candidateId, vacancyId); return(model); } catch (CustomException e) { if (e.Code == ApplicationErrorCodes.ApplicationInIncorrectStateError) { _logger.Info(e.Message, e); return (new ApprenticeshipApplicationViewModel(ApplicationViewModelStatus.ApplicationInIncorrectState) { Status = model.Status }); } var message = string.Format( "Unhandled custom exception while submitting the Application for candidate ID: {0}, vacancy ID: {1}.", candidateId, vacancyId); _logger.Error(message, e); return(FailedApplicationViewModel(vacancyId, candidateId, "Submission of application", ApplicationPageMessages.SubmitApplicationFailed, e)); } catch (Exception e) { var message = string.Format( "Submit Application failed for candidate ID: {0}, vacancy ID: {1}.", candidateId, vacancyId); _logger.Error(message, e); return(FailedApplicationViewModel(vacancyId, candidateId, "Submission of application", ApplicationPageMessages.SubmitApplicationFailed, e)); } }
public MediatorResponse <MyApprenticeshipApplicationViewModel> CandidateApplicationFeedback(Guid candidateId, int vacancyId) { ApprenticeshipApplicationViewModel model = _apprenticeshipApplicationProvider.GetApplicationViewModel(candidateId, vacancyId); MyApplicationsViewModel myApplicationsViewModel = _apprenticeshipApplicationProvider.GetMyApplications(candidateId); MyApprenticeshipApplicationViewModel apprenticeshipApplication = myApplicationsViewModel.AllApprenticeshipApplications.FirstOrDefault( vm => vm.VacancyId == vacancyId); if (model.ViewModelStatus == ApplicationViewModelStatus.ApplicationNotFound) { return(GetMediatorResponse(ApprenticeshipApplicationMediatorCodes.CandidateApplicationFeedback.ApplicationNotFound, apprenticeshipApplication, ApplicationPageMessages.ViewApplicationFailed, UserMessageLevel.Warning)); } if (model.HasError()) { return(GetMediatorResponse <MyApprenticeshipApplicationViewModel>(ApprenticeshipApplicationMediatorCodes.CandidateApplicationFeedback.Error, null, ApplicationPageMessages.ViewApplicationFailed, UserMessageLevel.Warning)); } apprenticeshipApplication.ProviderName = model.ProviderName; apprenticeshipApplication.Contact = model.Contact; return(GetMediatorResponse(ApprenticeshipApplicationMediatorCodes.CandidateApplicationFeedback.Ok, apprenticeshipApplication)); }