public async Task <EmployerNameViewModel> GetEmployerNameViewModelAsync(VacancyRouteModel vrm, VacancyEmployerInfoModel employerInfoModel)
        {
            var vacancy = await _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.Employer_Get);

            var accountLegalEntityPublicHashedId = employerInfoModel?.AccountLegalEntityPublicHashedId ?? vacancy.AccountLegalEntityPublicHashedId;

            if (string.IsNullOrEmpty(accountLegalEntityPublicHashedId))
            {
                return(null);
            }

            var getEmployerDataTask    = _employerVacancyClient.GetEditVacancyInfoAsync(vrm.EmployerAccountId);
            var getEmployerProfileTask = _recruitVacancyClient.GetEmployerProfileAsync(vrm.EmployerAccountId, accountLegalEntityPublicHashedId);
            await Task.WhenAll(getEmployerDataTask, getEmployerProfileTask);

            var editVacancyInfo = getEmployerDataTask.Result;
            var employerProfile = getEmployerProfileTask.Result;

            var legalEntity = editVacancyInfo.LegalEntities.Single(l => l.AccountLegalEntityPublicHashedId == accountLegalEntityPublicHashedId);

            var vm = new EmployerNameViewModel
            {
                HasOnlyOneOrganisation = editVacancyInfo.LegalEntities.Count() == 1,
                LegalEntityName        = legalEntity.Name,
                ExistingTradingName    = employerProfile.TradingName,
                PageInfo = _utility.GetPartOnePageInfo(vacancy),
                SelectedEmployerIdentityOption = employerInfoModel?.EmployerIdentityOption ?? vacancy?.EmployerNameOption?.ConvertToModelOption(),
                NewTradingName    = employerInfoModel?.NewTradingName,
                AnonymousName     = employerInfoModel?.AnonymousName,
                AnonymousReason   = employerInfoModel?.AnonymousReason ?? vacancy?.AnonymousReason,
                TaskListCompleted = _utility.TaskListCompleted(vacancy)
            };

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

            return(vm);
        }
        public async Task <EmployerNameViewModel> GetEmployerNameViewModelAsync(
            VacancyRouteModel vrm, VacancyEmployerInfoModel employerInfoModel, VacancyUser user)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(
                _providerVacancyClient, _recruitVacancyClient, vrm, RouteNames.EmployerName_Get);

            var accountLegalEntityPublicHashedId = employerInfoModel.AccountLegalEntityPublicHashedId;

            var getVacancyEditInfoTask = _providerVacancyClient.GetProviderEditVacancyInfoAsync(vrm.Ukprn);

            var getEmployerProfileTask = _recruitVacancyClient.GetEmployerProfileAsync(vacancy.EmployerAccountId, accountLegalEntityPublicHashedId);

            await Task.WhenAll(getVacancyEditInfoTask, getEmployerProfileTask);

            var employerInfo    = getVacancyEditInfoTask.Result.Employers.Single(e => e.EmployerAccountId == vacancy.EmployerAccountId);
            var employerProfile = getEmployerProfileTask.Result;

            var legalEntity = employerInfo.LegalEntities.Single(l => l.AccountLegalEntityPublicHashedId == accountLegalEntityPublicHashedId);

            var vm = new EmployerNameViewModel
            {
                HasOnlyOneOrganisation = employerInfo.LegalEntities.Count() == 1,
                LegalEntityName        = legalEntity.Name,
                ExistingTradingName    = employerProfile?.TradingName,
                PageInfo = Utility.GetPartOnePageInfo(vacancy),
                SelectedEmployerIdentityOption = employerInfoModel.EmployerIdentityOption,
                NewTradingName  = employerInfoModel.NewTradingName,
                AnonymousName   = employerInfoModel.AnonymousName,
                AnonymousReason = employerInfoModel.AnonymousReason
            };

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

            return(vm);
        }