protected void SetVacancyWithProviderReviewFieldIndicators <T>(T currentValue, string fieldId, Vacancy vacancy, Func <Vacancy, T> setFunc ) { var newValue = setFunc(vacancy); if (vacancy.Status == VacancyStatus.Rejected) { PopulateProviderReviewFieldIndicators(vacancy); if (!JsonConvert.SerializeObject(currentValue).Equals(JsonConvert.SerializeObject(newValue))) { foreach (var fieldIdentifier in ReviewFieldMappingLookups.GetPreviewReviewFieldIndicators().VacancyPropertyMappingsLookup[fieldId]) { var changedIndicator = vacancy.ProviderReviewFieldIndicators.Where(p => p.FieldIdentifier == fieldIdentifier).FirstOrDefault(); if (changedIndicator != null) { changedIndicator.IsChangeRequested = true; } } } } }
public async Task<EmployerContactDetailsViewModel> GetEmployerContactDetailsViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.EmployerContactDetails_Get); var vm = new EmployerContactDetailsViewModel { Title = vacancy.Title, EmployerContactName = vacancy.EmployerContact?.Name, EmployerContactEmail = vacancy.EmployerContact?.Email, EmployerContactPhone = vacancy.EmployerContact?.Phone, EmployerTitle = await GetEmployerTitleAsync(vacancy) }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetEmployerContactDetailsFieldIndicators()); } return vm; }
private void PopulateEmployerReviewFieldIndicators(Vacancy vacancy) { var employerReviewFieldIndicators = vacancy.EmployerReviewFieldIndicators ?? new List <EmployerReviewFieldIndicator>(); // add field indicators which are missing var missingIndicators = ReviewFieldMappingLookups .GetPreviewReviewFieldIndicators().FieldIdentifiersForPage .Select(p => new EmployerReviewFieldIndicator { FieldIdentifier = p.ReviewFieldIdentifier, IsChangeRequested = false }) .Where(p => !employerReviewFieldIndicators.Any(v => v.FieldIdentifier == p.FieldIdentifier)); if (missingIndicators.Any()) { employerReviewFieldIndicators .AddRange(missingIndicators); vacancy.EmployerReviewFieldIndicators = employerReviewFieldIndicators .OrderBy(p => p.FieldIdentifier).ToList(); } }
public async Task <TrainingViewModel> GetTrainingViewModelAsync(VacancyRouteModel vrm, VacancyUser user) { var vacancyTask = _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.Training_Get); var programmesTask = _vacancyClient.GetActiveApprenticeshipProgrammesAsync(); var isUsersFirstVacancyTask = IsUsersFirstVacancy(user.UserId); var getEmployerDataTask = _employerVacancyClient.GetEditVacancyInfoAsync(vrm.EmployerAccountId); await Task.WhenAll(vacancyTask, programmesTask, isUsersFirstVacancyTask, getEmployerDataTask); var vacancy = vacancyTask.Result; var programmes = programmesTask.Result; var vm = new TrainingViewModel { VacancyId = vacancy.Id, SelectedProgrammeId = vacancy.ProgrammeId, Programmes = programmes.ToViewModel(), IsUsersFirstVacancy = isUsersFirstVacancyTask.Result && vacancy.TrainingProvider == null, PageInfo = _utility.GetPartOnePageInfo(vacancy), HasMoreThanOneLegalEntity = getEmployerDataTask.Result.LegalEntities.Count() > 1 }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetTrainingReviewFieldIndicators()); } return(vm); }
public async Task <ConsiderationsViewModel> GetConsiderationsViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Considerations_Get); var vm = new ConsiderationsViewModel { Title = vacancy.Title, ThingsToConsider = vacancy.ThingsToConsider, }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetConsiderationsFieldIndicators()); } return(vm); }
public async Task <LocationViewModel> GetLocationViewModelAsync( VacancyRouteModel vrm, VacancyEmployerInfoModel employerInfoModel, VacancyUser user) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync( _providerVacancyClient, _recruitVacancyClient, vrm, RouteNames.Location_Get); var legalEntityId = employerInfoModel?.LegalEntityId ?? vacancy.LegalEntityId; var vm = new LocationViewModel(); vm.PageInfo = Utility.GetPartOnePageInfo(vacancy); vm.IsAnonymousVacancy = (employerInfoModel?.EmployerIdentityOption == null) ? vacancy.IsAnonymous : employerInfoModel.EmployerIdentityOption == EmployerIdentityOption.Anonymous; var employerProfile = await _recruitVacancyClient.GetEmployerProfileAsync(vacancy.EmployerAccountId, legalEntityId); var allLocations = await GetAllAvailableLocationsAsync(employerProfile, vacancy, vrm.Ukprn); vm.AvailableLocations = allLocations.Select(a => a.ToAddressString()).ToList(); var hasLegalEntityChanged = employerInfoModel?.HasLegalEntityChanged ?? false; if (vacancy.EmployerLocation != null && hasLegalEntityChanged == false) { var matchingAddress = GetMatchingAddress(vacancy.EmployerLocation.ToAddressString(), allLocations); if (matchingAddress == null) { vm.SelectedLocation = LocationViewModel.UseOtherLocationConst; vm.SetLocation(vacancy.EmployerLocation); } else { vm.SelectedLocation = matchingAddress.ToAddressString(); } } if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetLocationFieldIndicators()); } return(vm); }
public async Task <TrainingViewModel> GetTrainingViewModelAsync(VacancyRouteModel vrm) { var vacancyTask = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Training_Get); var programmesTask = _client.GetActiveApprenticeshipProgrammesAsync(); await Task.WhenAll(vacancyTask, programmesTask); var vacancy = vacancyTask.Result; var programmes = programmesTask.Result; var vm = new TrainingViewModel { VacancyId = vacancy.Id, SelectedProgrammeId = vacancy.ProgrammeId, Programmes = programmes.ToViewModel(), IsDisabilityConfident = vacancy.IsDisabilityConfident, PageInfo = Utility.GetPartOnePageInfo(vacancy), CurrentYear = _timeProvider.Now.Year }; if (vacancy.ClosingDate.HasValue) { vm.ClosingDay = $"{vacancy.ClosingDate.Value.Day:00}"; vm.ClosingMonth = $"{vacancy.ClosingDate.Value.Month:00}"; vm.ClosingYear = $"{vacancy.ClosingDate.Value.Year}"; } if (vacancy.StartDate.HasValue) { vm.StartDay = $"{vacancy.StartDate.Value.Day:00}"; vm.StartMonth = $"{vacancy.StartDate.Value.Month:00}"; vm.StartYear = $"{vacancy.StartDate.Value.Year}"; } if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetTrainingReviewFieldIndicators()); } return(vm); }
public async Task <NumberOfPositionsViewModel> GetNumberOfPositionsViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.NumberOfPositions_Get); var vm = new NumberOfPositionsViewModel { VacancyId = vacancy.Id, NumberOfPositions = vacancy.NumberOfPositions?.ToString(), PageInfo = Utility.GetPartOnePageInfo(vacancy) }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetNumberOfPositionsFieldIndicators()); } return(vm); }
public async Task <DurationViewModel> GetDurationViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Duration_Get); var training = await _vacancyClient.GetApprenticeshipProgrammeAsync(vacancy.ProgrammeId); var vm = new DurationViewModel { Duration = vacancy.Wage?.Duration?.ToString(), DurationUnit = vacancy.Wage?.DurationUnit ?? DurationUnit.Month, WorkingWeekDescription = vacancy.Wage?.WorkingWeekDescription, WeeklyHours = $"{vacancy.Wage?.WeeklyHours:0.##}", PageInfo = Utility.GetPartOnePageInfo(vacancy), TrainingTitle = training?.Title, TrainingDurationMonths = training?.Duration ?? 0 }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetDurationReviewFieldIndicators()); } return(vm); }
public async Task <SelectTrainingProviderViewModel> GetSelectTrainingProviderViewModel(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.TrainingProvider_Select_Get); var vm = new SelectTrainingProviderViewModel { Title = vacancy.Title, Ukprn = vacancy.TrainingProvider?.Ukprn?.ToString() }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetTrainingProviderFieldIndicators()); } return(vm); }
public async Task <WageViewModel> GetWageViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Wage_Get); var vm = new WageViewModel { Duration = vacancy.Wage?.Duration?.ToString(), DurationUnit = vacancy.Wage?.DurationUnit ?? DurationUnit.Year, WorkingWeekDescription = vacancy.Wage?.WorkingWeekDescription, WeeklyHours = $"{vacancy.Wage?.WeeklyHours:0.##}", WageType = vacancy.Wage?.WageType, FixedWageYearlyAmount = vacancy.Wage?.FixedWageYearlyAmount?.AsMoney(), WageAdditionalInformation = vacancy.Wage?.WageAdditionalInformation, PageInfo = Utility.GetPartOnePageInfo(vacancy) }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetWageReviewFieldIndicators()); } return(vm); }
public async Task <ApplicationProcessViewModel> GetApplicationProcessViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, 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()); } return(vm); }
public async Task <DatesViewModel> GetDatesViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Dates_Get); var vm = new DatesViewModel { VacancyId = vacancy.Id, IsDisabilityConfident = vacancy.IsDisabilityConfident, PageInfo = Utility.GetPartOnePageInfo(vacancy), CurrentYear = _timeProvider.Now.Year }; if (vacancy.ClosingDate.HasValue) { vm.ClosingDay = $"{vacancy.ClosingDate.Value.Day:00}"; vm.ClosingMonth = $"{vacancy.ClosingDate.Value.Month:00}"; vm.ClosingYear = $"{vacancy.ClosingDate.Value.Year}"; } if (vacancy.StartDate.HasValue) { vm.StartDay = $"{vacancy.StartDate.Value.Day:00}"; vm.StartMonth = $"{vacancy.StartDate.Value.Month:00}"; vm.StartYear = $"{vacancy.StartDate.Value.Year}"; } if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetDatesReviewFieldIndicators()); } return(vm); }
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 <TitleViewModel> GetTitleViewModelAsync(VacancyRouteModel vrm) { var dashboard = await _client.GetDashboardAsync(vrm.EmployerAccountId); var vacancy = await _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.Title_Get); var vm = new TitleViewModel { VacancyId = vacancy.Id, Title = vacancy.Title, PageInfo = _utility.GetPartOnePageInfo(vacancy), HasCloneableVacancies = dashboard.CloneableVacancies.Any() }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetTitleFieldIndicators()); } return(vm); }
public async Task <VacancyPreviewViewModel> GetVacancyPreviewViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Vacancy_Preview_Get); var vm = new VacancyPreviewViewModel(); await _vacancyDisplayMapper.MapFromVacancyAsync(vm, vacancy); vm.HasProgramme = vacancy.ProgrammeId != null; vm.HasWage = vacancy.Wage != null; vm.CanShowReference = vacancy.Status != VacancyStatus.Draft; vm.CanShowDraftHeader = vacancy.Status == VacancyStatus.Draft; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetPreviewReviewFieldIndicators()); } return(vm); }
public async Task <AboutEmployerViewModel> GetAboutEmployerViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.AboutEmployer_Get); var vm = new AboutEmployerViewModel { Title = vacancy.Title, EmployerDescription = await GetEmployerDescriptionAsync(vacancy), EmployerWebsiteUrl = vacancy.EmployerWebsiteUrl }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetAboutEmployerFieldIndicators()); } return(vm); }
public async Task <EmployerViewModel> GetEmployerViewModelAsync(VacancyRouteModel vrm) { var getEmployerDataTask = _client.GetEditVacancyInfoAsync(vrm.EmployerAccountId); var getVacancyTask = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Employer_Get); await Task.WhenAll(getEmployerDataTask, getVacancyTask); var employerData = getEmployerDataTask.Result; var vacancy = getVacancyTask.Result; var vm = new EmployerViewModel { Organisations = BuildLegalEntityViewModels(employerData, vrm.EmployerAccountId), SelectedOrganisationId = vacancy.LegalEntityId, PageInfo = Utility.GetPartOnePageInfo(vacancy) }; if (vacancy.EmployerLocation != null) { vm.AddressLine1 = vacancy.EmployerLocation.AddressLine1; vm.AddressLine2 = vacancy.EmployerLocation.AddressLine2; vm.AddressLine3 = vacancy.EmployerLocation.AddressLine3; vm.AddressLine4 = vacancy.EmployerLocation.AddressLine4; vm.Postcode = vacancy.EmployerLocation.Postcode; } else if (employerData.LegalEntities.Count() == 1 && vacancy.EmployerLocation == null) { var defaultLegalEntity = employerData.LegalEntities.First(); vm.AddressLine1 = defaultLegalEntity.Address.AddressLine1; vm.AddressLine2 = defaultLegalEntity.Address.AddressLine2; vm.AddressLine3 = defaultLegalEntity.Address.AddressLine3; vm.AddressLine4 = defaultLegalEntity.Address.AddressLine4; vm.Postcode = defaultLegalEntity.Address.Postcode; } if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetEmployerFieldIndicators()); } return(vm); }
public async Task <SelectTrainingProviderViewModel> GetSelectTrainingProviderViewModelAsync(VacancyRouteModel vrm, long?ukprn = null) { var vacancyTask = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.TrainingProvider_Select_Get); var trainingProvidersTask = _trainingProviderSummaryProvider.FindAllAsync(); await Task.WhenAll(vacancyTask, trainingProvidersTask); var vacancy = vacancyTask.Result; var trainingProviders = trainingProvidersTask.Result; var programme = await _vacancyClient.GetApprenticeshipProgrammeAsync(vacancy.ProgrammeId); var vm = new SelectTrainingProviderViewModel { Title = vacancy.Title, TrainingProviders = trainingProviders.Select(t => FormatSuggestion(t.ProviderName, t.Ukprn)), PageInfo = Utility.GetPartOnePageInfo(vacancy), Programme = programme.ToViewModel() }; TrySetSelectedTrainingProvider(vm, trainingProviders, vacancy, ukprn); if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetTrainingProviderFieldIndicators()); } return(vm); }
public async Task <VacancyDescriptionViewModel> GetVacancyDescriptionViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.VacancyDescription_Index_Get); var vm = new VacancyDescriptionViewModel { Title = vacancy.Title, VacancyDescription = vacancy.Description, TrainingDescription = vacancy.TrainingDescription, OutcomeDescription = vacancy.OutcomeDescription }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetVacancyDescriptionFieldIndicators()); } return(vm); }
public async Task <TrainingViewModel> GetTrainingViewModelAsync(VacancyRouteModel vrm, VacancyUser user) { var vacancyTask = Utility.GetAuthorisedVacancyForEditAsync( _client, _vacancyClient, vrm, RouteNames.Training_Get); var programmesTask = _vacancyClient.GetActiveApprenticeshipProgrammesAsync(); await Task.WhenAll(vacancyTask, programmesTask); var vacancy = vacancyTask.Result; var programmes = programmesTask.Result; var vm = new TrainingViewModel { VacancyId = vacancy.Id, SelectedProgrammeId = vacancy.ProgrammeId, Programmes = programmes.ToViewModel(), PageInfo = Utility.GetPartOnePageInfo(vacancy), }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetTrainingReviewFieldIndicators()); } return(vm); }
public async Task <SkillsViewModel> GetSkillsViewModelAsync(VacancyRouteModel vrm, string[] draftSkills = null) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Skills_Get); var vm = new SkillsViewModel { Title = vacancy.Title }; if (draftSkills == null) { _skillsHelper.SetViewModelSkillsFromVacancy(vm, vacancy); } else { _skillsHelper.SetViewModelSkillsFromDraftSkills(vm, draftSkills); } if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetSkillsFieldIndicators()); } return(vm); }
public async Task <ShortDescriptionViewModel> GetShortDescriptionViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, 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); }
public async Task <VacancyPreviewViewModel> GetVacancyPreviewViewModelAsync(VacancyRouteModel vrm) { var vacancyTask = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Vacancy_Preview_Get); var programmesTask = _vacancyClient.GetActiveApprenticeshipProgrammesAsync(); await Task.WhenAll(vacancyTask, programmesTask); var vacancy = vacancyTask.Result; var programme = programmesTask.Result.SingleOrDefault(p => p.Id == vacancy.ProgrammeId); var hasProviderReviewPermission = await _providerRelationshipsService.HasProviderGotEmployersPermissionAsync(vrm.Ukprn, vacancy.EmployerAccountId, vacancy.AccountLegalEntityPublicHashedId, OperationType.RecruitmentRequiresReview); var vm = new VacancyPreviewViewModel(); await _vacancyDisplayMapper.MapFromVacancyAsync(vm, vacancy); vm.HasProgramme = vacancy.ProgrammeId != null; vm.HasWage = vacancy.Wage != null; vm.CanShowReference = vacancy.Status != VacancyStatus.Draft; vm.CanShowDraftHeader = vacancy.Status == VacancyStatus.Draft; vm.SoftValidationErrors = GetSoftValidationErrors(vacancy); vm.RequiresEmployerReview = hasProviderReviewPermission; if (programme != null) { vm.ApprenticeshipLevel = programme.ApprenticeshipLevel; } if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetPreviewReviewFieldIndicators()); } return(vm); }
public async Task <WageViewModel> GetWageViewModelAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Wage_Get); var wagePeriod = _minimumWageProvider.GetWagePeriod(vacancy.StartDate.Value); var vm = new WageViewModel { WageType = vacancy.Wage?.WageType, FixedWageYearlyAmount = vacancy.Wage?.FixedWageYearlyAmount?.AsMoney(), WageAdditionalInformation = vacancy.Wage?.WageAdditionalInformation, MinimumWageStartFrom = wagePeriod.ValidFrom.ToMonthNameYearString(), NationalMinimumWageLowerBoundHourly = wagePeriod.NationalMinimumWageLowerBound.ToString("C"), NationalMinimumWageUpperBoundHourly = wagePeriod.NationalMinimumWageUpperBound.ToString("C"), NationalMinimumWageYearly = GetMinimumWageYearlyText(SFA.DAS.VacancyServices.Wage.WageType.NationalMinimum, vacancy.Wage?.WeeklyHours, vacancy.StartDate.Value), ApprenticeshipMinimumWageHourly = wagePeriod.ApprenticeshipMinimumWage.ToString("C"), ApprenticeshipMinimumWageYearly = GetMinimumWageYearlyText(SFA.DAS.VacancyServices.Wage.WageType.ApprenticeshipMinimum, vacancy.Wage?.WeeklyHours, vacancy.StartDate.Value), WeeklyHours = vacancy.Wage.WeeklyHours.Value, PageInfo = Utility.GetPartOnePageInfo(vacancy) }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetWageReviewFieldIndicators()); } return(vm); }
public async Task <TitleViewModel> GetTitleViewModelForExistingVacancyAsync(VacancyRouteModel vrm) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_providerVacancyClient, _recruitVacancyClient, vrm, RouteNames.Title_Get); var ukprn = vacancy.TrainingProvider.Ukprn.GetValueOrDefault(); var dashboard = await _providerVacancyClient.GetDashboardAsync(ukprn); var vm = new TitleViewModel { VacancyId = vacancy.Id, Title = vacancy.Title, PageInfo = Utility.GetPartOnePageInfo(vacancy), Ukprn = ukprn, EmployerAccountId = vacancy.EmployerAccountId, HasAnyVacancies = dashboard.Vacancies.Any() }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetTitleFieldIndicators()); } return(vm); }
public async Task <VacancyPreviewViewModel> GetVacancyPreviewViewModelAsync(VacancyRouteModel vrm) { var vacancyTask = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Vacancy_Preview_Get); var programmesTask = _vacancyClient.GetActiveApprenticeshipProgrammesAsync(); await Task.WhenAll(vacancyTask, programmesTask); var vacancy = vacancyTask.Result; var programme = programmesTask.Result.SingleOrDefault(p => p.Id == vacancy.ProgrammeId); var vm = new VacancyPreviewViewModel(); await _vacancyDisplayMapper.MapFromVacancyAsync(vm, vacancy); vm.HasProgramme = vacancy.ProgrammeId != null; vm.HasWage = vacancy.Wage != null; vm.CanShowReference = vacancy.Status != VacancyStatus.Draft; vm.CanShowDraftHeader = vacancy.Status == VacancyStatus.Draft; vm.SoftValidationErrors = GetSoftValidationErrors(vacancy); if (programme != null) { vm.Level = programme.Level; } if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetPreviewReviewFieldIndicators()); } return(vm); }
public async Task <EmployerNameViewModel> GetEmployerNameViewModelAsync( VacancyRouteModel vrm, VacancyEmployerInfoModel employerInfoModel, VacancyUser user) { var vacancy = await Utility.GetAuthorisedVacancyForEditAsync( _employerVacancyClient, _recruitVacancyClient, vrm, RouteNames.Employer_Get); var legalEntityId = employerInfoModel.LegalEntityId.GetValueOrDefault(); var getEmployerDataTask = _employerVacancyClient.GetEditVacancyInfoAsync(vrm.EmployerAccountId); var getEmployerProfileTask = _recruitVacancyClient.GetEmployerProfileAsync(vrm.EmployerAccountId, legalEntityId); await Task.WhenAll(getEmployerDataTask, getEmployerProfileTask); var editVacancyInfo = getEmployerDataTask.Result; var employerProfile = getEmployerProfileTask.Result; var legalEntity = editVacancyInfo.LegalEntities.Single(l => l.LegalEntityId == legalEntityId); var vm = new EmployerNameViewModel { HasOnlyOneOrganisation = editVacancyInfo.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); }
public async Task <QualificationsViewModel> GetQualificationsViewModelAsync(VacancyRouteModel vrm) { var vacancy = await _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.Qualifications_Get); var qualifications = vacancy.Qualifications ?? new List <Qualification>(); var vm = new QualificationsViewModel { Title = vacancy.Title, Qualifications = qualifications.Select(q => new QualificationEditModel { Subject = q.Subject, QualificationType = q.QualificationType, Weighting = q.Weighting, Grade = q.Grade }).ToList() }; if (vacancy.Status == VacancyStatus.Referred) { vm.Review = await _reviewSummaryService.GetReviewSummaryViewModelAsync(vacancy.VacancyReference.Value, ReviewFieldMappingLookups.GetQualificationsFieldIndicators()); } vm.IsTaskListCompleted = _utility.TaskListCompleted(vacancy); return(vm); }
public void ShouldMap() { var shortDescriptionProfanityCheckRuleOutcome = new RuleOutcome( RuleId.ProfanityChecks, 100, "Profanity 'drat' found in 'ShortDescription'", "ShortDescription", new List <RuleOutcome>(), "{\"Profanity\" : \"drat\",\"Occurrences\" : 1}"); var titleProfanityCheckRuleOutcome = new RuleOutcome( RuleId.ProfanityChecks, 0, "No profanities found in 'Title'", "Title"); var profanityChecksRuleOutcome = new RuleOutcome( RuleId.ProfanityChecks, 100, "No profanities found in 'Title', Profanity 'drat' found in 'ShortDescription', etc", "", new List <RuleOutcome> { shortDescriptionProfanityCheckRuleOutcome, titleProfanityCheckRuleOutcome } ); var sut = new ReviewFieldIndicatorMapper(new RuleMessageTemplateRunner()); var review = new VacancyReview { ManualQaFieldIndicators = new List <ManualQaFieldIndicator> { new ManualQaFieldIndicator { IsChangeRequested = false, FieldIdentifier = FieldIdentifiers.Title }, new ManualQaFieldIndicator { IsChangeRequested = true, FieldIdentifier = FieldIdentifiers.ShortDescription } }, AutomatedQaOutcomeIndicators = new List <RuleOutcomeIndicator> { new RuleOutcomeIndicator { IsReferred = false, RuleOutcomeId = titleProfanityCheckRuleOutcome.Id }, new RuleOutcomeIndicator { IsReferred = true, RuleOutcomeId = shortDescriptionProfanityCheckRuleOutcome.Id } }, AutomatedQaOutcome = new RuleSetOutcome { RuleOutcomes = new List <RuleOutcome> { profanityChecksRuleOutcome } } }; var vm = sut.MapFromFieldIndicators(ReviewFieldMappingLookups.GetPreviewReviewFieldIndicators(), review).ToList(); vm.Count.Should().Be(1); var shortDescription = vm.Single(v => v.ReviewFieldIdentifier == FieldIdentifiers.ShortDescription); shortDescription.ManualQaText.Should().NotBeNullOrEmpty(); shortDescription.AutoQaTexts.Count.Should().Be(1); shortDescription.AutoQaTexts[0].Should().Be("Brief overview contains the phrase 'drat'"); }