Esempio n. 1
0
        public async Task <LegalEntityAgreementSoftStopViewModel> GetLegalEntityAgreementSoftStopViewModelAsync(VacancyRouteModel vrm)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.LegalEntityAgreement_SoftStop_Get);

            return(new LegalEntityAgreementSoftStopViewModel
            {
                HasLegalEntityAgreement = await _legalEntityAgreementService.HasLegalEntityAgreementAsync(vacancy.EmployerAccountId, vacancy.LegalEntityId),
                LegalEntityName = vacancy.EmployerName,
                PageInfo = Utility.GetPartOnePageInfo(vacancy)
            });
        }
        private async Task <SubmitVacancyResponse> SubmitActionAsync(Vacancy vacancy, VacancyUser user)
        {
            var hasLegalEntityAgreementTask = _legalEntityAgreementService.HasLegalEntityAgreementAsync(vacancy.EmployerAccountId, vacancy.AccountLegalEntityPublicHashedId);
            var hasProviderAgreementTask    = _trainingProviderAgreementService.HasAgreementAsync(vacancy.TrainingProvider.Ukprn.Value);

            await Task.WhenAll(hasLegalEntityAgreementTask, hasProviderAgreementTask);

            var response = new SubmitVacancyResponse
            {
                HasLegalEntityAgreement = hasLegalEntityAgreementTask.Result,
                HasProviderAgreement    = hasProviderAgreementTask.Result,
                IsSubmitted             = false
            };

            if (response.HasLegalEntityAgreement && response.HasProviderAgreement)
            {
                var command = new SubmitVacancyCommand(vacancy.Id, user, OwnerType.Provider);

                await _messaging.SendCommandAsync(command);

                response.IsSubmitted = true;
            }

            return(response);
        }
        public async Task <LegalEntityAgreementHardStopViewModel> GetLegalEntityAgreementHardStopViewModelAsync(VacancyRouteModel vrm)
        {
            var vacancy = await Utility.GetAuthorisedVacancyForEditAsync(
                _client, _vacancyClient, vrm, RouteNames.LegalEntityAgreement_HardStop_Get);

            return(new LegalEntityAgreementHardStopViewModel
            {
                HasLegalEntityAgreement = await _legalEntityAgreementService.HasLegalEntityAgreementAsync(
                    vacancy.EmployerAccountId, vacancy.AccountLegalEntityPublicHashedId),
                LegalEntityName = vacancy.LegalEntityName
            });
        }
        public async Task <LegalEntityAgreementSoftStopViewModel> GetLegalEntityAgreementSoftStopViewModelAsync(
            VacancyRouteModel vrm, string selectedAccountLegalEntityPublicHashedId)
        {
            var vacancy = await
                          _utility.GetAuthorisedVacancyForEditAsync(vrm, RouteNames.LegalEntityAgreement_SoftStop_Get);

            var accountLegalEntityPublicHashedId = !string.IsNullOrEmpty(selectedAccountLegalEntityPublicHashedId) ? selectedAccountLegalEntityPublicHashedId : vacancy.AccountLegalEntityPublicHashedId;

            var legalEntity = await
                              _legalEntityAgreementService.GetLegalEntityAsync(vrm.EmployerAccountId, accountLegalEntityPublicHashedId);

            var hasLegalEntityAgreement = await
                                          _legalEntityAgreementService.HasLegalEntityAgreementAsync(
                vacancy.EmployerAccountId, legalEntity);

            return(new LegalEntityAgreementSoftStopViewModel
            {
                HasLegalEntityAgreement = hasLegalEntityAgreement,
                LegalEntityName = legalEntity.Name,
                PageInfo = _utility.GetPartOnePageInfo(vacancy)
            });
        }
        private async Task <SubmitVacancyResponse> SubmitActionAsync(Vacancy vacancy, VacancyUser user)
        {
            var response = new SubmitVacancyResponse
            {
                HasLegalEntityAgreement = await _legalEntityAgreementService.HasLegalEntityAgreementAsync(vacancy.EmployerAccountId, vacancy.LegalEntityId),
                IsSubmitted             = false
            };

            if (response.HasLegalEntityAgreement == false)
            {
                return(response);
            }

            await _client.SubmitVacancyAsync(vacancy.Id, vacancy.EmployerDescription, user);

            response.IsSubmitted = true;

            return(response);
        }
        private async Task <SubmitVacancyResponse> SubmitActionAsync(Vacancy vacancy, VacancyUser user)
        {
            var response = new SubmitVacancyResponse
            {
                HasLegalEntityAgreement = await _legalEntityAgreementService.HasLegalEntityAgreementAsync(vacancy.EmployerAccountId, vacancy.AccountLegalEntityPublicHashedId),
                IsSubmitted             = false
            };

            if (response.HasLegalEntityAgreement == false)
            {
                return(response);
            }

            var command = new SubmitVacancyCommand(vacancy.Id, user, OwnerType.Employer, vacancy.EmployerDescription);

            await _messaging.SendCommandAsync(command);

            response.IsSubmitted = true;

            return(response);
        }
        public async Task <OrchestratorResponse <PostEmployerEditModelResponse> > PostEmployerEditModelAsync(EmployerEditModel m, VacancyUser user)
        {
            var vacancyTask             = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, m, RouteNames.Employer_Post);
            var employerVacancyInfoTask = _client.GetEditVacancyInfoAsync(m.EmployerAccountId);

            await Task.WhenAll(vacancyTask, employerVacancyInfoTask);

            var vacancy             = vacancyTask.Result;
            var employerVacancyInfo = employerVacancyInfoTask.Result;

            var selectedOrganisation = employerVacancyInfo.LegalEntities.SingleOrDefault(x => x.LegalEntityId == m.SelectedOrganisationId);

            vacancy.LegalEntityId = m.SelectedOrganisationId;
            vacancy.EmployerName  = selectedOrganisation?.Name;

            vacancy.EmployerLocation = new Vacancies.Client.Domain.Entities.Address
            {
                AddressLine1 = m.AddressLine1,
                AddressLine2 = m.AddressLine2,
                AddressLine3 = m.AddressLine3,
                AddressLine4 = m.AddressLine4,
                Postcode     = m.Postcode.AsPostcode(),
                Latitude     = null,
                Longitude    = null
            };

            return(await ValidateAndExecute(
                       vacancy,
                       v => _vacancyClient.Validate(v, ValidationRules),
                       async v =>
            {
                await _vacancyClient.UpdateDraftVacancyAsync(vacancy, user);

                return new PostEmployerEditModelResponse
                {
                    HasLegalEntityAgreement = await _legalEntityAgreementService.HasLegalEntityAgreementAsync(vacancy.EmployerAccountId, vacancy.LegalEntityId)
                };
            }));
        }
Esempio n. 8
0
        private async Task <SubmitVacancyResponse> SubmitActionAsync(Vacancy vacancy, VacancyUser user)
        {
            var hasLegalEntityAgreementTask = _legalEntityAgreementService.HasLegalEntityAgreementAsync(vacancy.EmployerAccountId, vacancy.LegalEntityId);
            var hasProviderAgreementTask    = _trainingProviderAgreementService.HasAgreementAsync(vacancy.TrainingProvider.Ukprn.Value);

            await Task.WhenAll(hasLegalEntityAgreementTask, hasProviderAgreementTask);

            var response = new SubmitVacancyResponse
            {
                HasLegalEntityAgreement = hasLegalEntityAgreementTask.Result,
                HasProviderAgreement    = hasProviderAgreementTask.Result,
                IsSubmitted             = false
            };

            if (response.HasLegalEntityAgreement && response.HasProviderAgreement)
            {
                await _client.SubmitVacancyAsync(vacancy.Id, user);

                response.IsSubmitted = true;
            }

            return(response);
        }
        private async Task <SubmitVacancyResponse> SubmitActionAsync(Vacancy vacancy, VacancyUser user)
        {
            var hasLegalEntityAgreementTask = _legalEntityAgreementService.HasLegalEntityAgreementAsync(vacancy.EmployerAccountId, vacancy.AccountLegalEntityPublicHashedId);
            var hasProviderAgreementTask    = _trainingProviderAgreementService.HasAgreementAsync(vacancy.TrainingProvider.Ukprn.Value);

            await Task.WhenAll(hasLegalEntityAgreementTask, hasProviderAgreementTask);

            var hasProviderReviewPermission = await _providerRelationshipsService.HasProviderGotEmployersPermissionAsync(vacancy.TrainingProvider.Ukprn.Value, vacancy.EmployerAccountId, vacancy.AccountLegalEntityPublicHashedId, OperationType.RecruitmentRequiresReview);

            var response = new SubmitVacancyResponse
            {
                HasLegalEntityAgreement = hasLegalEntityAgreementTask.Result,
                HasProviderAgreement    = hasProviderAgreementTask.Result,
                IsSubmitted             = false
            };

            if (response.HasLegalEntityAgreement && response.HasProviderAgreement)
            {
                if (hasProviderReviewPermission)
                {
                    var command = new ReviewVacancyCommand(vacancy.Id, user, OwnerType.Provider);
                    await _messaging.SendCommandAsync(command);

                    response.IsSentForReview = true;
                }
                else
                {
                    var command = new SubmitVacancyCommand(vacancy.Id, user, OwnerType.Provider);
                    await _messaging.SendCommandAsync(command);

                    response.IsSubmitted = true;
                }
            }

            return(response);
        }