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 <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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public async Task <OrchestratorResponse <EditVacancyDatesViewModel> > GetEditVacancyDatesViewModelAsync(VacancyRouteModel vrm, DateTime?proposedClosingDate, DateTime?proposedStartDate)
        {
            var vacancyTask    = GetVacancyAsync(vrm);
            var programmesTask = _vacancyClient.GetActiveApprenticeshipProgrammesAsync();

            await Task.WhenAll(vacancyTask, programmesTask);

            var vacancy    = vacancyTask.Result;
            var programmes = programmesTask.Result;

            var vm = new EditVacancyDatesViewModel
            {
                ClosingDay   = $"{vacancy.ClosingDate.Value.Day:00}",
                ClosingMonth = $"{vacancy.ClosingDate.Value.Month:00}",
                ClosingYear  = $"{vacancy.ClosingDate.Value.Year}",

                StartDay   = $"{vacancy.StartDate.Value.Day:00}",
                StartMonth = $"{vacancy.StartDate.Value.Month:00}",
                StartYear  = $"{vacancy.StartDate.Value.Year}",

                CurrentYear = _timeProvider.Now.Year,

                ProgrammeName = programmes.First(p => p.Id == vacancy.ProgrammeId).Title
            };

            var resp = new OrchestratorResponse <EditVacancyDatesViewModel>(vm);

            ApplyProposedDateChanges(proposedClosingDate, proposedStartDate, resp);

            return(resp);
        }
Ejemplo n.º 5
0
        public async Task <VacancyPreviewViewModel> GetVacancyTaskListModel(VacancyRouteModel vrm)
        {
            var vacancyTask         = _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.EmployerTaskListGet);
            var programmesTask      = _recruitVacancyClient.GetActiveApprenticeshipProgrammesAsync();
            var getEmployerDataTask = _employerVacancyClient.GetEditVacancyInfoAsync(vrm.EmployerAccountId);

            await Task.WhenAll(vacancyTask, programmesTask, getEmployerDataTask);

            var vacancy   = vacancyTask.Result;
            var programme = programmesTask.Result.SingleOrDefault(p => p.Id == vacancy.ProgrammeId);

            var vm = new VacancyPreviewViewModel();
            await _displayVacancyViewModelMapper.MapFromVacancyAsync(vm, vacancy);

            vm.RejectedReason     = vacancy.EmployerRejectedReason;
            vm.HasProgramme       = vacancy.ProgrammeId != null;
            vm.HasWage            = vacancy.Wage != null;
            vm.CanShowReference   = vacancy.Status != VacancyStatus.Draft;
            vm.CanShowDraftHeader = vacancy.Status == VacancyStatus.Draft;

            if (programme != null)
            {
                vm.ApprenticeshipLevel = programme.ApprenticeshipLevel;
            }

            vm.AccountLegalEntityCount = getEmployerDataTask.Result.LegalEntities.Count();
            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);
        }
Ejemplo n.º 7
0
        public async Task <IApprenticeshipProgramme> GetProgrammeId(string programmeId)
        {
            if (string.IsNullOrWhiteSpace(programmeId))
            {
                return(null);
            }
            var programmes = await _vacancyClient.GetActiveApprenticeshipProgrammesAsync();

            return(programmes.SingleOrDefault(p => p.Id == programmeId));
        }
        public async Task <IApprenticeshipProgramme> GetProgramme(string programmeId)
        {
            var programmesTask = await _vacancyClient.GetActiveApprenticeshipProgrammesAsync();

            return(programmesTask.SingleOrDefault(p => p.Id == programmeId));
        }