public FluentVacancyValidator(
            ITimeProvider timeProvider,
            IMinimumWageProvider minimumWageService,
            IApprenticeshipProgrammeProvider apprenticeshipProgrammesProvider,
            IQualificationsProvider qualificationsProvider,
            IHtmlSanitizerService htmlSanitizerService,
            ITrainingProviderSummaryProvider trainingProviderSummaryProvider,
            IBlockedOrganisationQuery blockedOrganisationRepo,
            IProfanityListProvider profanityListProvider,
            IProviderRelationshipsService providerRelationshipService)
        {
            _timeProvider                     = timeProvider;
            _minimumWageService               = minimumWageService;
            _qualificationsProvider           = qualificationsProvider;
            _apprenticeshipProgrammesProvider = apprenticeshipProgrammesProvider;
            _htmlSanitizerService             = htmlSanitizerService;
            _trainingProviderSummaryProvider  = trainingProviderSummaryProvider;
            _blockedOrganisationRepo          = blockedOrganisationRepo;
            _profanityListProvider            = profanityListProvider;
            _providerRelationshipService      = providerRelationshipService;

            SingleFieldValidations();

            CrossFieldValidations();
        }
Esempio n. 2
0
 public ProviderBlockedOnLegalEntityDomainEventHandler(
     IEmployerAccountProvider employerAccountProvider,
     IProviderRelationshipsService providerRelationshipsService,
     ILogger <ProviderBlockedOnLegalEntityDomainEventHandler> logger) : base(logger)
 {
     _logger = logger;
     _employerAccountProvider      = employerAccountProvider;
     _providerRelationshipsService = providerRelationshipsService;
 }
 public SetupProviderHandler(ILogger <SetupProviderHandler> logger,
                             IEditVacancyInfoProjectionService projectionService,
                             IProviderRelationshipsService providerRelationshipService,
                             IEmployerVacancyClient client,
                             IPasAccountProvider pasAccountProvider) : base(logger)
 {
     _logger                      = logger;
     _projectionService           = projectionService;
     _providerRelationshipService = providerRelationshipService;
     _client                      = client;
     _pasAccountProvider          = pasAccountProvider;
 }
Esempio n. 4
0
 public VacanciesOrchestrator(
     IProviderVacancyClient providerVacancyClient,
     IRecruitVacancyClient recruitVacancyClient,
     ITimeProvider timeProvider,
     IProviderAlertsViewModelFactory providerAlertsViewModelFactory,
     IProviderRelationshipsService providerRelationshipsService)
 {
     _providerVacancyClient          = providerVacancyClient;
     _recruitVacancyClient           = recruitVacancyClient;
     _timeProvider                   = timeProvider;
     _providerAlertsViewModelFactory = providerAlertsViewModelFactory;
     _providerRelationshipsService   = providerRelationshipsService;
 }
Esempio n. 5
0
 public DashboardOrchestrator(
     IEmployerVacancyClient vacancyClient,
     ITimeProvider timeProvider,
     IRecruitVacancyClient client,
     IEmployerAlertsViewModelFactory alertsViewModelFactory,
     IProviderRelationshipsService providerRelationshipsService)
 {
     _vacancyClient                = vacancyClient;
     _timeProvider                 = timeProvider;
     _client                       = client;
     _alertsViewModelFactory       = alertsViewModelFactory;
     _providerRelationshipsService = providerRelationshipsService;
 }
 public VacancyPreviewOrchestrator(
     IProviderVacancyClient client,
     IRecruitVacancyClient vacancyClient,
     ILogger <VacancyPreviewOrchestrator> logger,
     DisplayVacancyViewModelMapper vacancyDisplayMapper,
     IReviewSummaryService reviewSummaryService,
     IProviderRelationshipsService providerRelationshipsService,
     ILegalEntityAgreementService legalEntityAgreementService,
     ITrainingProviderAgreementService trainingProviderAgreementService,
     IMessaging messaging) : base(logger)
 {
     _client                           = client;
     _vacancyClient                    = vacancyClient;
     _vacancyDisplayMapper             = vacancyDisplayMapper;
     _reviewSummaryService             = reviewSummaryService;
     _providerRelationshipsService     = providerRelationshipsService;
     _legalEntityAgreementService      = legalEntityAgreementService;
     _trainingProviderAgreementService = trainingProviderAgreementService;
     _messaging                        = messaging;
 }
 public CreateVacancyCommandHandler(
     IRecruitVacancyClient recruitVacancyClient,
     IEmployerVacancyClient employerVacancyClient,
     IVacancyRepository vacancyRepository,
     IMessaging messaging,
     ITimeProvider timeProvider,
     ITrainingProviderService trainingProviderService,
     IProviderVacancyClient providerVacancyClient,
     IProviderRelationshipsService providerRelationshipsService,
     ILogger <CreateVacancyCommandHandler> logger)
 {
     _recruitVacancyClient         = recruitVacancyClient;
     _employerVacancyClient        = employerVacancyClient;
     _vacancyRepository            = vacancyRepository;
     _messaging                    = messaging;
     _timeProvider                 = timeProvider;
     _trainingProviderService      = trainingProviderService;
     _providerVacancyClient        = providerVacancyClient;
     _providerRelationshipsService = providerRelationshipsService;
     _logger = logger;
 }
        internal static IRuleBuilderInitial <Vacancy, Vacancy> TrainingProviderVacancyMustHaveEmployerPermission(this IRuleBuilder <Vacancy, Vacancy> ruleBuilder, IProviderRelationshipsService providerRelationshipService)
        {
            return(ruleBuilder.CustomAsync(async(vacancy, context, cancellationToken) =>
            {
                if (vacancy.OwnerType != OwnerType.Provider)
                {
                    return;
                }

                var hasPermission = await providerRelationshipService.HasProviderGotEmployersPermissionAsync(vacancy.TrainingProvider.Ukprn.Value, vacancy.EmployerAccountId, vacancy.AccountLegalEntityPublicHashedId, OperationType.Recruitment);

                if (hasPermission)
                {
                    return;
                }

                var failure = new ValidationFailure(string.Empty, "Training provider does not have permission to create vacancies for this employer")
                {
                    ErrorCode = ErrorCodes.TrainingProviderMustHaveEmployerPermission,
                    CustomState = VacancyRuleSet.TrainingProvider
                };
                context.AddFailure(failure);
            }));
        }