public void ValidationError()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate = new ApprenticeshipCandidateViewModel
                {
                    AboutYou = new AboutYouViewModel()
                },
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetApplicationViewModel(It.IsAny <Guid>(), ValidVacancyId))
            .Returns(new ApprenticeshipApplicationViewModel
            {
                Status        = ApplicationStatuses.Draft,
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel
                {
                    VacancyStatus = VacancyStatuses.Live
                }
            });
            ApprenticeshipApplicationProvider.Setup(
                p =>
                p.PatchApplicationViewModel(It.IsAny <Guid>(), It.IsAny <ApprenticeshipApplicationViewModel>(),
                                            It.IsAny <ApprenticeshipApplicationViewModel>()))
            .Returns <Guid, ApprenticeshipApplicationViewModel, ApprenticeshipApplicationViewModel>(
                (cid, svm, vm) => vm);

            var response = Mediator.PreviewAndSubmit(Guid.NewGuid(), ValidVacancyId, viewModel);

            response.AssertValidationResult(ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.ValidationError);
        }
Пример #2
0
        public void SaveApplication(Guid candidateId, int vacancyId,
                                    ApprenticeshipApplicationViewModel apprenticeshipApplicationViewModel)
        {
            _logger.Debug(
                "Calling ApprenticeshipApplicationProvider to save the Application View Model for candidate ID: {0}, vacancy ID: {1}.",
                candidateId, vacancyId);

            try
            {
                var application =
                    _mapper.Map <ApprenticeshipApplicationViewModel, ApprenticeshipApplicationDetail>(
                        apprenticeshipApplicationViewModel);

                _candidateService.SaveApplication(candidateId, vacancyId, application);
                _logger.Debug("Application View Model saved for candidate ID: {0}, vacancy ID: {1}.",
                              candidateId, vacancyId);
            }
            catch (Exception e)
            {
                var message =
                    string.Format(
                        "Save application failed for user {0}.",
                        candidateId);
                _logger.Error(message, e);
                throw;
            }
        }
        public async Task <ActionResult> Apply(int id, ApprenticeshipApplicationViewModel model)
        {
            return(await Task.Run <ActionResult>(() =>
            {
                var response = _apprenticeshipApplicationMediator.PreviewAndSubmit(UserContext.CandidateId, id, model);

                switch (response.Code)
                {
                case ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.OfflineVacancy:
                    return RedirectToRoute(CandidateRouteNames.ApprenticeshipDetails, new { id });

                case ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.VacancyNotFound:
                    return new ApprenticeshipNotFoundResult();

                case ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.IncorrectState:
                    return RedirectToRoute(CandidateRouteNames.MyApplications);

                case ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.Error:
                    ModelState.Clear();
                    SetUserMessage(response.Message.Text, response.Message.Level);
                    return View(response.ViewModel);

                case ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.ValidationError:
                    ModelState.Clear();
                    response.ValidationResult.AddToModelState(ModelState, string.Empty);
                    return View(response.ViewModel);

                case ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.Ok:
                    ModelState.Clear();
                    return RedirectToAction("Preview", response.Parameters);
                }

                throw new InvalidMediatorCodeException(response.Code);
            }));
        }
        public void OfflineVacancy()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetApplicationViewModel(It.IsAny <Guid>(), ValidVacancyId))
            .Returns(new ApprenticeshipApplicationViewModel
            {
                Status        = ApplicationStatuses.Draft,
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel
                {
                    ApplyViaEmployerWebsite = true
                }
            });
            ApprenticeshipApplicationProvider.Setup(
                p =>
                p.PatchApplicationViewModel(It.IsAny <Guid>(), It.IsAny <ApprenticeshipApplicationViewModel>(),
                                            It.IsAny <ApprenticeshipApplicationViewModel>()))
            .Returns <Guid, ApprenticeshipApplicationViewModel, ApprenticeshipApplicationViewModel>(
                (cid, svm, vm) => vm);
            ApprenticeshipApplicationProvider.Setup(p => p.SubmitApplication(It.IsAny <Guid>(), It.IsAny <int>()))
            .Returns(viewModel);

            var response = Mediator.PreviewAndSubmit(Guid.NewGuid(), ValidVacancyId, viewModel);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.PreviewAndSubmit.OfflineVacancy, false);
        }
        public async Task <JsonResult> AutoSave(int id, ApprenticeshipApplicationViewModel model)
        {
            return(await Task.Run(() =>
            {
                var response = _apprenticeshipApplicationMediator.AutoSave(UserContext.CandidateId, id, model);

                switch (response.Code)
                {
                case ApprenticeshipApplicationMediatorCodes.AutoSave.VacancyNotFound:
                    return new JsonResult {
                        Data = response.ViewModel
                    };

                case ApprenticeshipApplicationMediatorCodes.AutoSave.HasError:
                    ModelState.Clear();
                    return new JsonResult {
                        Data = response.ViewModel
                    };

                case ApprenticeshipApplicationMediatorCodes.AutoSave.ValidationError:
                    ModelState.Clear();
                    return new JsonResult {
                        Data = response.ViewModel
                    };

                case ApprenticeshipApplicationMediatorCodes.AutoSave.Ok:
                    ModelState.Clear();
                    return new JsonResult {
                        Data = response.ViewModel
                    };
                }

                throw new InvalidMediatorCodeException(response.Code);
            }));
        }
Пример #6
0
        public void ValidationError()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate = new ApprenticeshipCandidateViewModel
                {
                    Education = new EducationViewModel
                    {
                        NameOfMostRecentSchoolCollege = "A School",
                        FromYear = "0",
                        ToYear   = "0"
                    }
                },
                VacancyDetail = new VacancyDetailViewModel
                {
                    VacancyStatus = VacancyStatuses.Live
                },
                ViewModelStatus = ApplicationViewModelStatus.Error
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetApplicationViewModel(It.IsAny <Guid>(), It.IsAny <int>())).Returns(viewModel);
            ApprenticeshipApplicationProvider.Setup(p => p.SubmitApplication(It.IsAny <Guid>(), It.IsAny <int>())).Returns(viewModel);

            var response = Mediator.Submit(Guid.NewGuid(), ValidVacancyId);

            response.AssertValidationResult(ApprenticeshipApplicationMediatorCodes.Submit.ValidationError);
        }
Пример #7
0
        public void ValidationError()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate = new ApprenticeshipCandidateViewModel
                {
                    Education = new EducationViewModel
                    {
                        FromYear = "1066"
                    }
                },
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetApplicationViewModel(It.IsAny <Guid>(), ValidVacancyId))
            .Returns(new ApprenticeshipApplicationViewModel
            {
                Status        = ApplicationStatuses.Draft,
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            });
            ApprenticeshipApplicationProvider.Setup(
                p =>
                p.PatchApplicationViewModel(It.IsAny <Guid>(), It.IsAny <ApprenticeshipApplicationViewModel>(),
                                            It.IsAny <ApprenticeshipApplicationViewModel>()))
            .Returns <Guid, ApprenticeshipApplicationViewModel, ApprenticeshipApplicationViewModel>(
                (cid, svm, vm) => vm);

            var response = Mediator.Save(Guid.NewGuid(), ValidVacancyId, viewModel);

            response.AssertValidationResult(ApprenticeshipApplicationMediatorCodes.Save.ValidationError);
        }
Пример #8
0
        private ApprenticeshipApplicationViewModel PatchWithVacancyDetail(
            Guid candidateId, int vacancyId, ApprenticeshipApplicationViewModel apprenticeshipApplicationViewModel)
        {
            // TODO: why have a patch method like this? should be done in mapper.
            var vacancyDetailViewModel = _apprenticeshipVacancyDetailProvider.GetVacancyDetailViewModel(candidateId, vacancyId);

            if (vacancyDetailViewModel == null || vacancyDetailViewModel.VacancyStatus == VacancyStatuses.Unavailable)
            {
                apprenticeshipApplicationViewModel.ViewModelMessage = MyApplicationsPageMessages.ApprenticeshipNoLongerAvailable;
                apprenticeshipApplicationViewModel.Status           = ApplicationStatuses.ExpiredOrWithdrawn;

                return(apprenticeshipApplicationViewModel);
            }

            if (vacancyDetailViewModel.HasError())
            {
                apprenticeshipApplicationViewModel.ViewModelMessage = vacancyDetailViewModel.ViewModelMessage;

                return(apprenticeshipApplicationViewModel);
            }

            apprenticeshipApplicationViewModel.VacancyDetail = vacancyDetailViewModel;
            apprenticeshipApplicationViewModel.Candidate.EmployerQuestionAnswers.SupplementaryQuestion1 = vacancyDetailViewModel.SupplementaryQuestion1;
            apprenticeshipApplicationViewModel.Candidate.EmployerQuestionAnswers.SupplementaryQuestion2 = vacancyDetailViewModel.SupplementaryQuestion2;

            return(apprenticeshipApplicationViewModel);
        }
Пример #9
0
        public void GetApplicationViewModelError()
        {
            var postedViewModel = new ApprenticeshipApplicationPreviewViewModel
            {
                AcceptSubmit = true
            };

            var savedViewModel = new ApprenticeshipApplicationPreviewViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel
                {
                    VacancyStatus = VacancyStatuses.Live
                }
            };
            var submittedApplicationViewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate        = new ApprenticeshipCandidateViewModel(),
                VacancyDetail    = new ApprenticeshipVacancyDetailViewModel(),
                ViewModelStatus  = ApplicationViewModelStatus.Error,
                ViewModelMessage = "An error message"
            };

            ApprenticeshipApplicationProvider.Setup(
                p => p.GetApplicationPreviewViewModel(It.IsAny <Guid>(), It.IsAny <int>())).Returns(savedViewModel);
            ApprenticeshipApplicationProvider.Setup(p => p.SubmitApplication(It.IsAny <Guid>(), It.IsAny <int>()))
            .Returns(submittedApplicationViewModel);

            var response = Mediator.Submit(Guid.NewGuid(), ValidVacancyId, postedViewModel);

            response.AssertMessage(ApprenticeshipApplicationMediatorCodes.Submit.Error,
                                   ApplicationPageMessages.SubmitApplicationFailed, UserMessageLevel.Warning, false, true);
        }
Пример #10
0
        public ApprenticeshipApplicationViewModel Build()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Status           = _status,
                ViewModelMessage = _viewModelMessage,
                Candidate        = new ApprenticeshipCandidateViewModel
                {
                    Education = new EducationViewModel(),
                    AboutYou  = new AboutYouViewModel
                    {
                        RequiresSupportForInterview           = _requiresSupportForInterview,
                        AnythingWeCanDoToSupportYourInterview = _anythingWeCanDoToSupportYourInterview
                    },
                    Address = new AddressViewModel
                    {
                        GeoPoint = new GeoPointViewModel()
                    }
                },
                VacancyDetail = new VacancyDetailViewModel
                {
                    VacancyAddress = new AddressViewModel
                    {
                        GeoPoint = new GeoPointViewModel()
                    }
                }
            };

            return(viewModel);
        }
        private ActionResult ReviewRejectCandidate(ApprenticeshipApplicationViewModel apprenticeshipApplicationViewModel)
        {
            var response  = _apprenticeshipApplicationMediator.ReviewRejectCandidate(apprenticeshipApplicationViewModel);
            var viewModel = response.ViewModel;

            ModelState.Clear();

            if (response.Message != null)
            {
                SetUserMessage(response.Message);
            }

            switch (response.Code)
            {
            case ApprenticeshipApplicationMediatorCodes.ReviewRejectCandidate.Error:
                return(View("Review", response.ViewModel));

            case ApprenticeshipApplicationMediatorCodes.ReviewRejectCandidate.FailedValidation:
                response.ValidationResult.AddToModelStateWithSeverity(ModelState, string.Empty);
                return(RedirectToRoute(RecruitmentRouteNames.ReviewApprenticeshipApplication, viewModel));

            case ApprenticeshipApplicationMediatorCodes.ReviewRejectCandidate.Ok:
                return(RedirectToRoute(RecruitmentRouteNames.ConfirmUnsuccessfulApprenticeshipApplication, viewModel.ApplicationSelection.RouteValues));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
        public void DefaultShouldNotHaveAnyValidationErrors()
        {
            var viewModel = new ApprenticeshipApplicationViewModel();

            var result = _validator.Validate(viewModel);

            result.IsValid.Should().BeTrue();
        }
Пример #13
0
        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 void GivenNullCandidateViewModel_ThenExceptionIsThrown()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate = null
            };
            Action patchApplicationViewModelAction = () => new ApprenticeshipApplicationProviderBuilder().Build().PatchApplicationViewModel(Guid.NewGuid(), null, viewModel);

            patchApplicationViewModelAction.ShouldThrow <Exception>();
        }
        public async Task <ActionResult> AddEmptyWorkExperienceRows(int id, ApprenticeshipApplicationViewModel model)
        {
            return(await Task.Run <ActionResult>(() =>
            {
                var response = _apprenticeshipApplicationMediator.AddEmptyWorkExperienceRows(model);

                ModelState.Clear();

                return View("Apply", response.ViewModel);
            }));
        }
        public void Ok()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            var response = Mediator.AddEmptyQualificationRows(viewModel);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.AddEmptyQualificationRows.Ok, true);
        }
Пример #17
0
        public async Task <JsonResult> AutoSave(int id, ApprenticeshipApplicationViewModel model)
        {
            return(await Task.Run(() =>
            {
                MediatorResponse <AutoSaveResultViewModel> response;

                try
                {
                    response = _apprenticeshipApplicationMediator.AutoSave(UserContext.CandidateId, id, model);
                }
                catch (Exception)
                {
                    //TODO: Remove once the cause of the null candidate objects is fixed
                    var requestDebugString = Request.ToDebugString();
                    _logService.Error("Error when auto saving apprenticeship application. Request: {0}", requestDebugString);
                    throw;
                }

                switch (response.Code)
                {
                case ApprenticeshipApplicationMediatorCodes.AutoSave.VacancyNotFound:
                    return new JsonResult {
                        Data = response.ViewModel
                    };

                case ApprenticeshipApplicationMediatorCodes.AutoSave.HasError:
                    ModelState.Clear();
                    return new JsonResult {
                        Data = response.ViewModel
                    };

                case ApprenticeshipApplicationMediatorCodes.AutoSave.ValidationError:
                    ModelState.Clear();
                    return new JsonResult {
                        Data = response.ViewModel
                    };

                case ApprenticeshipApplicationMediatorCodes.AutoSave.IncorrectState:
                    ModelState.Clear();
                    return new JsonResult {
                        Data = response.ViewModel
                    };

                case ApprenticeshipApplicationMediatorCodes.AutoSave.Ok:
                    ModelState.Clear();
                    return new JsonResult {
                        Data = response.ViewModel
                    };
                }

                throw new InvalidMediatorCodeException(response.Code);
            }));
        }
Пример #18
0
        public void Ok()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            var response = Mediator.AddEmptyTrainingCourseRows(viewModel);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.AddEmptyTrainingCourseRows.Ok, true);
            response.ViewModel.Candidate.HasTrainingCourses.Should().BeFalse();
        }
        public void WillRemoveEmptyQualficationRows()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = CreateCandidateWithOneQualificationAndTwoEmptyQualifications(),
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            var response = Mediator.AddEmptyQualificationRows(viewModel);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.AddEmptyQualificationRows.Ok, true);
            response.ViewModel.Candidate.Qualifications.Should().HaveCount(1);
        }
Пример #20
0
        public void Error()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetApplicationViewModel(It.IsAny <Guid>(), ValidVacancyId)).Returns(new ApprenticeshipApplicationViewModel("Has Error"));

            var response = Mediator.Save(Guid.NewGuid(), ValidVacancyId, viewModel);

            response.AssertMessage(ApprenticeshipApplicationMediatorCodes.Save.Error, ApplicationPageMessages.SaveFailed, UserMessageLevel.Warning, true);
        }
Пример #21
0
        public void HasError()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new VacancyDetailViewModel()
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetOrCreateApplicationViewModel(It.IsAny <Guid>(), ValidVacancyId)).Returns(new ApprenticeshipApplicationViewModel("Has Error"));

            var response = Mediator.AutoSave(Guid.NewGuid(), ValidVacancyId, viewModel);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.AutoSave.HasError, true);
        }
Пример #22
0
        public void SuccessTest()
        {
            var applicationView = new ApprenticeshipApplicationViewModel();

            var apprenticeshipApplicationProviderMock = new Mock <IApprenticeshipApplicationProvider>();

            apprenticeshipApplicationProviderMock.Setup(x => x.UnarchiveApplication(It.IsAny <Guid>(), It.IsAny <int>())).Returns(applicationView);
            var accountMediator = new AccountMediatorBuilder().With(apprenticeshipApplicationProviderMock).Build();

            var response = accountMediator.Track(Guid.NewGuid(), 1);

            response.Code.Should().Be(AccountMediatorCodes.Track.SuccessfullyTracked);
            response.Message.Should().BeNull();
        }
Пример #23
0
        public async Task <ActionResult> Save(int id, ApprenticeshipApplicationViewModel model)
        {
            return(await Task.Run <ActionResult>(() =>
            {
                MediatorResponse <ApprenticeshipApplicationViewModel> response;

                try
                {
                    response = _apprenticeshipApplicationMediator.Save(UserContext.CandidateId, id, model);
                }
                catch (Exception)
                {
                    //TODO: Remove once the cause of saving exceptions is fixed
                    var requestDebugString = Request.ToDebugString();
                    _logService.Error("Error when saving apprenticeship application. Request: {0}", requestDebugString);
                    throw;
                }

                switch (response.Code)
                {
                case ApprenticeshipApplicationMediatorCodes.Save.OfflineVacancy:
                    return RedirectToRoute(CandidateRouteNames.ApprenticeshipDetails, new { id });

                case ApprenticeshipApplicationMediatorCodes.Save.VacancyNotFound:
                    return new ApprenticeshipNotFoundResult();

                case ApprenticeshipApplicationMediatorCodes.Save.Error:
                    ModelState.Clear();
                    SetUserMessage(response.Message.Text, response.Message.Level);
                    return View("Apply", response.ViewModel);

                case ApprenticeshipApplicationMediatorCodes.Save.ValidationError:
                    ModelState.Clear();
                    response.ValidationResult.AddToModelState(ModelState, string.Empty);
                    return View("Apply", response.ViewModel);

                case ApprenticeshipApplicationMediatorCodes.Save.IncorrectState:
                    SetUserMessage(response.Message.Text, response.Message.Level);
                    return RedirectToRoute(CandidateRouteNames.MyApplications);

                case ApprenticeshipApplicationMediatorCodes.Save.Ok:
                    ModelState.Clear();
                    return View("Apply", response.ViewModel);
                }

                throw new InvalidMediatorCodeException(response.Code);
            }));
        }
Пример #24
0
        public ApprenticeshipApplicationViewModel PatchApplicationViewModel(Guid candidateId,
                                                                            ApprenticeshipApplicationViewModel savedModel, ApprenticeshipApplicationViewModel submittedModel)
        {
            _logger.Debug(
                "Calling ApprenticeshipApplicationProvider to patch the Application View Model for candidate ID: {0}.",
                candidateId);

            try
            {
                if (submittedModel.IsJavascript && !submittedModel.Candidate.MonitoringInformation.RequiresSupportForInterview)
                {
                    submittedModel.Candidate.MonitoringInformation.AnythingWeCanDoToSupportYourInterview = string.Empty;
                }

                savedModel.Candidate.AboutYou = submittedModel.Candidate.AboutYou;
                savedModel.Candidate.MonitoringInformation   = submittedModel.Candidate.MonitoringInformation;
                savedModel.Candidate.Education               = submittedModel.Candidate.Education;
                savedModel.Candidate.HasQualifications       = submittedModel.Candidate.HasQualifications;
                savedModel.Candidate.Qualifications          = submittedModel.Candidate.Qualifications;
                savedModel.Candidate.HasWorkExperience       = submittedModel.Candidate.HasWorkExperience;
                savedModel.Candidate.WorkExperience          = submittedModel.Candidate.WorkExperience;
                savedModel.Candidate.HasTrainingCourses      = submittedModel.Candidate.HasTrainingCourses;
                savedModel.Candidate.TrainingCourses         = submittedModel.Candidate.TrainingCourses;
                savedModel.Candidate.EmployerQuestionAnswers = submittedModel.Candidate.EmployerQuestionAnswers;

                return(savedModel);
            }
            catch (Exception e)
            {
                var message =
                    string.Format(
                        "Patch application View Model failed for user {0}.", candidateId);
                if (submittedModel == null)
                {
                    message += " submittedModel was null";
                }
                else if (submittedModel.Candidate == null)
                {
                    message += " submittedModel.Candidate was null";
                }
                else if (submittedModel.Candidate.AboutYou == null)
                {
                    message += " submittedModel.Candidate.AboutYou was null";
                }
                _logger.Error(message, e);
                throw;
            }
        }
Пример #25
0
        public void VacancyNotFound()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new VacancyDetailViewModel(),
                Status        = ApplicationStatuses.ExpiredOrWithdrawn
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetApplicationViewModel(It.IsAny <Guid>(), It.IsAny <int>())).Returns(viewModel);
            ApprenticeshipApplicationProvider.Setup(p => p.SubmitApplication(It.IsAny <Guid>(), It.IsAny <int>())).Returns(viewModel);

            var response = Mediator.Submit(Guid.NewGuid(), ValidVacancyId);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.Submit.VacancyNotFound, false);
        }
Пример #26
0
        public void WillSetDefaultRowCounts()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new ApprenticeshipVacancyDetailViewModel()
            };

            var response = Mediator.AddEmptyTrainingCourseRows(viewModel);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.AddEmptyTrainingCourseRows.Ok, true);

            response.ViewModel.DefaultQualificationRows.Should().Be(0);
            response.ViewModel.DefaultWorkExperienceRows.Should().Be(0);
            response.ViewModel.DefaultTrainingCourseRows.Should().Be(3);
        }
Пример #27
0
        public void DeleteAlreadyDeleted()
        {
            var applicationView = new ApprenticeshipApplicationViewModel {
                ViewModelMessage = "Has error"
            };
            var apprenticeshipApplicationProviderMock = new Mock <IApprenticeshipApplicationProvider>();

            apprenticeshipApplicationProviderMock.Setup(x => x.GetApplicationViewModel(It.IsAny <Guid>(), It.IsAny <int>())).Returns(applicationView);
            var accountMediator = new AccountMediatorBuilder().With(apprenticeshipApplicationProviderMock).Build();

            var response = accountMediator.Delete(Guid.NewGuid(), 1);

            response.Code.Should().Be(AccountMediatorCodes.Delete.AlreadyDeleted);
            response.Message.Text.Should().Be(MyApplicationsPageMessages.ApplicationDeleted);
            response.Message.Level.Should().Be(UserMessageLevel.Warning);
        }
Пример #28
0
        public void VacancyNotFound()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new VacancyDetailViewModel()
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetOrCreateApplicationViewModel(It.IsAny <Guid>(), ValidVacancyId)).Returns(new ApprenticeshipApplicationViewModel {
                Status = ApplicationStatuses.ExpiredOrWithdrawn
            });

            var response = Mediator.AutoSave(Guid.NewGuid(), ValidVacancyId, viewModel);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.AutoSave.VacancyNotFound, true);
        }
Пример #29
0
        public void ErrorTest()
        {
            var applicationView = new ApprenticeshipApplicationViewModel {
                ViewModelMessage = "Has error"
            };

            var apprenticeshipApplicationProviderMock = new Mock <IApprenticeshipApplicationProvider>();

            apprenticeshipApplicationProviderMock.Setup(x => x.UnarchiveApplication(It.IsAny <Guid>(), It.IsAny <int>())).Returns(applicationView);
            var accountMediator = new AccountMediatorBuilder().With(apprenticeshipApplicationProviderMock).Build();

            var response = accountMediator.Track(Guid.NewGuid(), 1);

            response.Code.Should().Be(AccountMediatorCodes.Track.ErrorTracking);
            response.Message.Text.Should().Be(applicationView.ViewModelMessage);
            response.Message.Level.Should().Be(UserMessageLevel.Warning);
        }
Пример #30
0
        public void ErrorGettingApplicationViewModel()
        {
            var viewModel = new ApprenticeshipApplicationViewModel
            {
                Candidate     = new ApprenticeshipCandidateViewModel(),
                VacancyDetail = new VacancyDetailViewModel()
            };

            ApprenticeshipApplicationProvider.Setup(p => p.GetApplicationViewModel(It.IsAny <Guid>(), It.IsAny <int>())).Returns(viewModel);
            ApprenticeshipApplicationProvider.Setup(p => p.GetOrCreateApplicationViewModel(It.IsAny <Guid>(), ValidVacancyId)).Returns(new ApprenticeshipApplicationViewModel(MyApplicationsPageMessages.ApplicationNotFound, ApplicationViewModelStatus.ApplicationNotFound));
            ApprenticeshipApplicationProvider.Setup(p => p.PatchApplicationViewModel(It.IsAny <Guid>(), It.IsAny <ApprenticeshipApplicationViewModel>(), It.IsAny <ApprenticeshipApplicationViewModel>())).Returns <Guid, ApprenticeshipApplicationViewModel, ApprenticeshipApplicationViewModel>((cid, svm, vm) => vm);
            ApprenticeshipApplicationProvider.Setup(p => p.SubmitApplication(It.IsAny <Guid>(), It.IsAny <int>())).Returns(viewModel);

            var response = Mediator.Submit(Guid.NewGuid(), ValidVacancyId);

            response.AssertCode(ApprenticeshipApplicationMediatorCodes.Submit.VacancyNotFound, false);
        }