Ejemplo n.º 1
0
        public async Task <IActionResult> ConfirmTraining(ConfirmTrainingEditModel m, [FromQuery] bool wizard)
        {
            var user = User.ToVacancyUser();

            var programme = await _orchestrator.GetProgrammeAsync(m.ProgrammeId);

            if (programme == null)
            {
                ModelState.AddModelError(nameof(TrainingEditModel.SelectedProgrammeId), InvalidTraining);
            }
            else
            {
                var response = await _orchestrator.PostConfirmTrainingEditModelAsync(m, user);

                if (!response.Success)
                {
                    response.AddErrorsToModelState(ModelState);
                }
            }

            if (!ModelState.IsValid)
            {
                var vm = await _orchestrator.GetTrainingViewModelAsync(m, user);

                vm.PageInfo.SetWizard(wizard);
                return(View("training", vm));
            }

            return(wizard
                ? RedirectToRoute(RouteNames.TrainingProvider_Select_Get)
                : RedirectToRoute(RouteNames.Vacancy_Preview_Get));
        }
        public async Task <OrchestratorResponse> PostConfirmTrainingEditModelAsync(ConfirmTrainingEditModel m, VacancyUser user)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, m, RouteNames.Training_Confirm_Post);

            vacancy.ProgrammeId = m.ProgrammeId;

            return(await ValidateAndExecute(
                       vacancy,
                       v => _vacancyClient.Validate(v, ValidationRules),
                       v => _vacancyClient.UpdateDraftVacancyAsync(vacancy, user)
                       ));
        }
        public async Task WhenUpdated_ShouldFlagFieldIndicators(string programmeId, bool fieldIndicatorSet)
        {
            _fixture
            .WithProgrammeId("this is a value")
            .Setup();

            var confirmTrainingEditModel = new ConfirmTrainingEditModel
            {
                Ukprn       = _fixture.Vacancy.TrainingProvider.Ukprn.Value,
                VacancyId   = _fixture.Vacancy.Id,
                ProgrammeId = programmeId
            };

            await _fixture.PostConfirmTrainingEditModelAsync(confirmTrainingEditModel);

            _fixture.VerifyProviderReviewFieldIndicators(FieldIdentifiers.TrainingLevel, fieldIndicatorSet);
            _fixture.VerifyProviderReviewFieldIndicators(FieldIdentifiers.Training, fieldIndicatorSet);
        }
        public async Task <OrchestratorResponse> PostConfirmTrainingEditModelAsync(ConfirmTrainingEditModel m, VacancyUser user)
        {
            var vacancy = await _utility.GetAuthorisedVacancyForEditAsync(m, RouteNames.Training_Confirm_Post);

            SetVacancyWithEmployerReviewFieldIndicators(
                vacancy.ProgrammeId,
                FieldIdResolver.ToFieldId(v => v.ProgrammeId),
                vacancy,
                (v) =>
            {
                return(v.ProgrammeId = m.ProgrammeId);
            });

            return(await ValidateAndExecute(
                       vacancy,
                       v => _vacancyClient.Validate(v, ValidationRules),
                       v => _vacancyClient.UpdateDraftVacancyAsync(vacancy, user)
                       ));
        }
 public async Task PostConfirmTrainingEditModelAsync(ConfirmTrainingEditModel model)
 {
     await Sut.PostConfirmTrainingEditModelAsync(model, User);
 }