示例#1
0
        public async Task <IActionResult> EmployerName(EmployerNameEditModel model, [FromQuery] bool wizard)
        {
            var employerInfoModel = GetVacancyEmployerInfoCookie(model.VacancyId);

            //respective cookie can go missing if user has opened another vacancy in a different browser tab
            if (employerInfoModel == null && !_feature.IsFeatureEnabled(FeatureNames.EmployerTaskList))
            {
                return(RedirectToRoute(RouteNames.Employer_Get));
            }

            if (_feature.IsFeatureEnabled(FeatureNames.EmployerTaskList))
            {
                employerInfoModel = new VacancyEmployerInfoModel
                {
                    VacancyId = model.VacancyId
                };
            }

            var response = await _orchestrator.PostEmployerNameEditModelAsync(model, User.ToVacancyUser());

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

            if (!ModelState.IsValid)
            {
                var vm = await _orchestrator.GetEmployerNameViewModelAsync(model, employerInfoModel);

                vm.PageInfo.SetWizard(wizard);
                vm.NewTradingName = model.NewTradingName;
                vm.SelectedEmployerIdentityOption = model.SelectedEmployerIdentityOption;
                vm.AnonymousName   = model.AnonymousName;
                vm.AnonymousReason = model.AnonymousReason;
                return(View(vm));
            }

            employerInfoModel.EmployerIdentityOption = model.SelectedEmployerIdentityOption;
            employerInfoModel.NewTradingName         = model.SelectedEmployerIdentityOption == EmployerIdentityOption.NewTradingName ? model.NewTradingName : null;
            employerInfoModel.AnonymousName          = model.SelectedEmployerIdentityOption == EmployerIdentityOption.Anonymous ? model.AnonymousName : null;
            employerInfoModel.AnonymousReason        = model.SelectedEmployerIdentityOption == EmployerIdentityOption.Anonymous ? model.AnonymousReason : null;
            SetVacancyEmployerInfoCookie(employerInfoModel);

            return(RedirectToRoute(RouteNames.LegalEntityAgreement_SoftStop_Get, new { Wizard = wizard }));
        }