Beispiel #1
0
        public static void CheckRouteIsValidForVacancy(Vacancy vacancy, string currentRouteName, VacancyRouteModel vrm)
        {
            var validRoutes = GetPermittedRoutesForVacancy(vacancy);

            if (validRoutes == null || validRoutes.Contains(currentRouteName))
            {
                return;
            }

            var redirectRoute = validRoutes.Last();

            throw new InvalidRouteForVacancyException(string.Format(RecruitWebExceptionMessages.RouteNotValidForVacancy, currentRouteName, redirectRoute),
                                                      redirectRoute, vrm);
        }
Beispiel #2
0
        public async Task <IActionResult> Qualification(VacancyRouteModel vrm, int index)
        {
            var vm = await _orchestrator.GetQualificationViewModelForEditAsync(vrm, index);

            return(View(vm));
        }
        public async Task <OrchestratorResponse> PostQualificationEditModelForAddAsync(VacancyRouteModel vrm, QualificationEditModel m, VacancyUser user)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Qualification_Add_Post);

            if (vacancy.Qualifications == null)
            {
                vacancy.Qualifications = new List <Qualification>();
            }

            var qualification = new Qualification();

            vacancy.Qualifications.Add(qualification);

            return(await UpdateVacancyWithQualificationAsync(vacancy, null, qualification, m, user));
        }
        public async Task <IActionResult> ShortDescription(VacancyRouteModel vrm)
        {
            var vm = await _orchestrator.GetShortDescriptionViewModelAsync(vrm);

            return(View(vm));
        }
Beispiel #5
0
        public async Task <ShortDescriptionViewModel> GetShortDescriptionViewModelAsync(VacancyRouteModel vrm)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_providerVacancyClient,
                                                                         _recruitVacancyClient, vrm, RouteNames.ShortDescription_Get);

            var vm = new ShortDescriptionViewModel
            {
                VacancyId        = vacancy.Id,
                ShortDescription = vacancy.ShortDescription,
                Title            = vacancy.Title
            };

            if (vacancy.Status == VacancyStatus.Referred)
            {
                vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value,
                                                                                       ReviewFieldMappingLookups.GetShortDescriptionReviewFieldIndicators());
            }

            return(vm);
        }
Beispiel #6
0
 public IActionResult ApproveJobAdvert(VacancyRouteModel vm)
 {
     return(View(new ApproveJobAdvertViewModel()));
 }
Beispiel #7
0
        public async Task <IActionResult> ConfirmationJobAdvert(VacancyRouteModel vrm)
        {
            var viewModel = await _orchestrator.GetVacancyConfirmationJobAdvertAsync(vrm);

            return(View("ConfirmationJobAdvert", viewModel));
        }
 public IActionResult Cancel(VacancyRouteModel vrm, [FromQuery] bool wizard)
 {
     return(CancelAndRedirect(wizard));
 }
Beispiel #9
0
        public static async Task <Vacancy> GetAuthorisedVacancyForEditAsync(IEmployerVacancyClient client, IRecruitVacancyClient vacancyClient, VacancyRouteModel vrm, string routeName)
        {
            var vacancy = await GetAuthorisedVacancyAsync(vacancyClient, vrm, routeName);

            CheckCanEdit(vacancy);

            return(vacancy);
        }
Beispiel #10
0
        public async Task <VacancyEmployerInfoModel> GetVacancyEmployerInfoModelAsync(VacancyRouteModel vrm)
        {
            var vacancy = await _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.Employer_Post);

            var model = new VacancyEmployerInfoModel()
            {
                VacancyId = vacancy.Id,
                AccountLegalEntityPublicHashedId = vacancy.AccountLegalEntityPublicHashedId
            };

            if (vacancy.EmployerNameOption.HasValue)
            {
                model.EmployerIdentityOption = vacancy.EmployerNameOption.Value.ConvertToModelOption();
                model.AnonymousName          = vacancy.IsAnonymous ? vacancy.EmployerName : null;
                model.AnonymousReason        = vacancy.IsAnonymous ? vacancy.AnonymousReason : null;
            }

            return(model);
        }
        public async Task <IActionResult> CloneVacancyWithNewDates(VacancyRouteModel vrm)
        {
            var vm = await _orchestrator.GetCloneVacancyWithNewDatesViewModelAsync(vrm);

            return(View(vm));
        }
Beispiel #12
0
        public async Task <IActionResult> TrainingFirstVacancy(VacancyRouteModel vrm)
        {
            var vm = await _orchestrator.GetTrainingFirstVacancyViewModelAsync(vrm);

            return(View(vm));
        }
Beispiel #13
0
 public IActionResult TrainingHelp(VacancyRouteModel vrm)
 {
     return(View());
 }
Beispiel #14
0
        public async Task <IActionResult> Considerations(VacancyRouteModel vrm)
        {
            var vm = await _orchestrator.GetConsiderationsViewModelAsync(vrm);

            return(View(vm));
        }
 public async Task PostQualificationEditModelForEditAsync(VacancyRouteModel vacancyRouteModel, QualificationEditModel model, int index)
 {
     await Sut.PostQualificationEditModelForEditAsync(vacancyRouteModel, model, User, index);
 }
Beispiel #16
0
        public static async Task <Vacancy> GetAuthorisedVacancyAsync(IRecruitVacancyClient client, VacancyRouteModel vrm, string routeName)
        {
            var vacancy = await client.GetVacancyAsync(vrm.VacancyId);

            CheckAuthorisedAccess(vacancy, vrm.EmployerAccountId);

            CheckRouteIsValidForVacancy(vacancy, routeName);

            return(vacancy);
        }
 public async Task DeleteQualificationAsync(VacancyRouteModel vacancyRouteModel, int index)
 {
     await Sut.DeleteQualificationAsync(vacancyRouteModel, index, User);
 }
        public async Task <ProviderContactDetailsViewModel> GetProviderContactDetailsViewModelAsync(VacancyRouteModel vrm)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.ProviderContactDetails_Get);

            var vm = new ProviderContactDetailsViewModel
            {
                Title = vacancy.Title,
                ProviderContactName  = vacancy.ProviderContact?.Name,
                ProviderContactEmail = vacancy.ProviderContact?.Email,
                ProviderContactPhone = vacancy.ProviderContact?.Phone,
                ProviderName         = vacancy.TrainingProvider?.Name
            };

            if (vacancy.Status == VacancyStatus.Referred)
            {
                vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value,
                                                                                       ReviewFieldMappingLookups.GetProviderContactDetailsFieldIndicators());
            }

            return(vm);
        }
Beispiel #19
0
        public async Task <IActionResult> RejectJobAdvert(VacancyRouteModel vm)
        {
            var viewModel = await _orchestrator.GetVacancyRejectJobAdvertAsync(vm);

            return(View(viewModel));
        }
        public async Task <ApplicationProcessViewModel> GetApplicationProcessViewModelAsync(VacancyRouteModel vrm)
        {
            var vacancy = await _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.ApplicationProcess_Get);

            var vm = new ApplicationProcessViewModel
            {
                Title = vacancy.Title,
                FindAnApprenticeshipUrl = _externalLinks.FindAnApprenticeshipUrl,
                ApplicationMethod       = vacancy.ApplicationMethod,
                ApplicationInstructions = vacancy.ApplicationInstructions,
                ApplicationUrl          = vacancy.ApplicationUrl
            };

            if (vacancy.Status == VacancyStatus.Referred)
            {
                vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value,
                                                                                       ReviewFieldMappingLookups.GetApplicationProcessFieldIndicators());
            }

            vm.IsTaskListCompleted = _utility.TaskListCompleted(vacancy);

            return(vm);
        }
        public async Task <IActionResult> AboutEmployer(VacancyRouteModel vrm)
        {
            var vm = await _orchestrator.GetAboutEmployerViewModelAsync(vrm);

            return(View(vm));
        }
        public async Task <ConfirmTrainingViewModel> GetConfirmTrainingViewModelAsync(VacancyRouteModel vrm, string programmeId)
        {
            var vacancyTask    = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Training_Confirm_Get);
            var programmesTask = _vacancyClient.GetActiveApprenticeshipProgrammesAsync();

            await Task.WhenAll(vacancyTask, programmesTask);

            var programme = programmesTask.Result.SingleOrDefault(p => p.Id == programmeId);

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

            return(new ConfirmTrainingViewModel
            {
                ProgrammeId = programme.Id,
                ApprenticeshipLevel = programme.ApprenticeshipLevel,
                TrainingTitle = programme.Title,
                DurationMonths = programme.Duration,
                ProgrammeType = programme.ApprenticeshipType.GetDisplayName(),
                PageInfo = Utility.GetPartOnePageInfo(vacancyTask.Result),
                TrainingEffectiveToDate = programme.EffectiveTo?.AsGdsDate(),
                EducationLevelName =
                    EducationLevelNumberHelper.GetEducationLevelNameOrDefault(programme.EducationLevelNumber, programme.ApprenticeshipLevel)
            });
        }
Beispiel #23
0
        public async Task <IActionResult> Confirmation(VacancyRouteModel vrm)
        {
            var vm = await _orchestrator.GetVacancySubmittedConfirmationViewModelAsync(vrm, User.ToVacancyUser());

            return(View(vm));
        }
 public Task <IActionResult> Delete(VacancyRouteModel vrm)
 {
     return(GetDeleteVacancyConfirmationView(vrm));
 }
        public async Task <VacancySubmittedConfirmationViewModel> GetVacancySubmittedConfirmationViewModelAsync(VacancyRouteModel vrm, VacancyUser vacancyUser)
        {
            var vacancy = await Utility.GetAuthorisedVacancyAsync(_vacancyClient, vrm, RouteNames.Submitted_Index_Get);

            if (vacancy.Status != VacancyStatus.Submitted)
            {
                throw new InvalidStateException(string.Format(ErrorMessages.VacancyNotSubmittedSuccessfully, vacancy.Title));
            }

            var isResubmit = false;

            if (vacancy.VacancyReference.HasValue)
            {
                var review = await _vacancyClient.GetCurrentReferredVacancyReviewAsync(vacancy.VacancyReference.Value);

                isResubmit = review != null;
            }

            var preferences = await _vacancyClient.GetUserNotificationPreferencesAsync(vacancyUser.UserId);

            var vm = new VacancySubmittedConfirmationViewModel
            {
                Title               = vacancy.Title,
                VacancyReference    = vacancy.VacancyReference?.ToString(),
                IsResubmit          = isResubmit,
                HasNotificationsSet = preferences != null && preferences.NotificationTypes > NotificationTypes.None
            };

            return(vm);
        }
        private async Task <IActionResult> GetDeleteVacancyConfirmationView(VacancyRouteModel vrm)
        {
            var vm = await _orchestrator.GetDeleteViewModelAsync(vrm);

            return(View(vm));
        }
        public async Task <QualificationViewModel> GetQualificationViewModelForEditAsync(VacancyRouteModel vrm, QualificationEditModel m, int index)
        {
            var vm = await GetQualificationViewModelForEditAsync(vrm, index);

            SetQualificationViewModelFromEditModel(vm, m);

            return(vm);
        }
 public async Task PostQualificationEditModelForAddAsync(VacancyRouteModel vacancyRouteModel, QualificationEditModel model)
 {
     await Sut.PostQualificationEditModelForAddAsync(vacancyRouteModel, model, User);
 }
        public async Task <OrchestratorResponse> PostQualificationEditModelForEditAsync(VacancyRouteModel vrm, QualificationEditModel m, VacancyUser user, int index)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Qualification_Edit_Post);

            var qualification        = vacancy.Qualifications[index];
            var currentQualification = new Qualification
            {
                QualificationType = qualification.QualificationType,
                Grade             = qualification.Grade,
                Subject           = qualification.Subject,
                Weighting         = qualification.Weighting,
            };

            return(await UpdateVacancyWithQualificationAsync(vacancy, currentQualification, qualification, m, user));
        }
Beispiel #30
0
        public static async Task <Vacancy> GetAuthorisedVacancyAsync(IProviderVacancyClient client, IRecruitVacancyClient vacancyClient, VacancyRouteModel vrm, string routeName)
        {
            var vacancy = await vacancyClient.GetVacancyAsync(vrm.VacancyId.GetValueOrDefault());

            CheckAuthorisedAccess(vacancy, vrm.Ukprn);

            CheckRouteIsValidForVacancy(vacancy, routeName, vrm);

            return(vacancy);
        }