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();
        }
示例#2
0
 public ProviderAccountHandler(IHostingEnvironment hostingEnvironment, IProviderVacancyClient client, IRecruitVacancyClient vacancyClient, IBlockedOrganisationQuery blockedOrganisationsRepo, ITempDataProvider tempDataProvider)
 {
     _hostingEnvironment       = hostingEnvironment;
     _client                   = client;
     _vacancyClient            = vacancyClient;
     _blockedOrganisationsRepo = blockedOrganisationsRepo;
     _tempDataProvider         = tempDataProvider;
 }
 public UnblockOrganisationOrchestrator(
     IBlockedOrganisationQuery blockedOrganisationQuery,
     IMessaging messaging, ITimeProvider timeProvider, ITrainingProviderService trainingProviderService)
 {
     _blockedOrganisationQuery = blockedOrganisationQuery;
     _messaging               = messaging;
     _timeProvider            = timeProvider;
     _trainingProviderService = trainingProviderService;
 }
 public BlockedOrganisationsOrchestrator(
     IBlockedOrganisationQuery blockedOrganisationQuery, IQueryStoreReader queryStore,
     IMessaging messaging, ITimeProvider timeProvider, ITrainingProviderService trainingProviderService)
 {
     _blockedOrganisationQuery = blockedOrganisationQuery;
     _queryStore              = queryStore;
     _messaging               = messaging;
     _timeProvider            = timeProvider;
     _trainingProviderService = trainingProviderService;
 }
 public UnblockProviderCommandHandler(
     ILogger <UnblockProviderCommandHandler> logger,
     IBlockedOrganisationQuery blockedOrganisationQuery,
     IBlockedOrganisationRepository blockedOrganisationRepository,
     IMessaging messaging)
 {
     _logger = logger;
     _blockedOrganisationQuery      = blockedOrganisationQuery;
     _blockedOrganisationRepository = blockedOrganisationRepository;
     _messaging = messaging;
 }
 public ApproveVacancyReviewCommandHandler(ILogger <ApproveVacancyReviewCommandHandler> logger,
                                           IVacancyReviewRepository vacancyReviewRepository,
                                           IVacancyRepository vacancyRepository,
                                           IMessaging messaging,
                                           AbstractValidator <VacancyReview> vacancyReviewValidator,
                                           ITimeProvider timeProvider,
                                           IBlockedOrganisationQuery blockedOrganisationQuery,
                                           IEmployerDashboardProjectionService dashboardService,
                                           ICommunicationQueueService communicationQueueService)
 {
     _logger                    = logger;
     _vacancyRepository         = vacancyRepository;
     _vacancyReviewRepository   = vacancyReviewRepository;
     _messaging                 = messaging;
     _vacancyReviewValidator    = vacancyReviewValidator;
     _timeProvider              = timeProvider;
     _blockedOrganisationQuery  = blockedOrganisationQuery;
     _dashboardService          = dashboardService;
     _communicationQueueService = communicationQueueService;
 }
示例#7
0
 public BlockedOrganisationsProjectionService(ILogger <BlockedOrganisationsProjectionService> logger, IBlockedOrganisationQuery repo, IQueryStoreWriter queryStoreWriter)
 {
     _logger           = logger;
     _repo             = repo;
     _queryStoreWriter = queryStoreWriter;
 }
        internal static IRuleBuilderInitial <TrainingProvider, TrainingProvider> TrainingProviderMustNotBeBlocked(this IRuleBuilder <TrainingProvider, TrainingProvider> ruleBuilder, IBlockedOrganisationQuery blockedOrganisationRep)
        {
            return(ruleBuilder.CustomAsync(async(trainingProvider, context, cancellationToken) =>
            {
                if (trainingProvider.Ukprn != null)
                {
                    var organisation = await blockedOrganisationRep.GetByOrganisationIdAsync(trainingProvider.Ukprn.Value.ToString());
                    if (organisation == null || organisation.BlockedStatus != BlockedStatus.Blocked)
                    {
                        return;
                    }
                }

                var failure = new ValidationFailure(nameof(Vacancy.TrainingProvider), $"{trainingProvider.Name} can no longer be used as a training provider")
                {
                    ErrorCode = ErrorCodes.TrainingProviderMustNotBeBlocked,
                    CustomState = VacancyRuleSet.TrainingProvider
                };
                context.AddFailure(failure);
            }));
        }
        public TrainingProviderValidator(long ruleId, ITrainingProviderSummaryProvider trainingProviderSummaryProvider, IBlockedOrganisationQuery blockedOrganisationRepo)
        {
            RuleFor(tp => tp.Ukprn.ToString())
            .NotEmpty()
            .WithMessage("You must enter a training provider")
            .WithErrorCode(ErrorCodes.TrainingProviderUkprnNotEmpty)
            .Length(UkprnLength)
            .WithMessage($"The UKPRN is {UkprnLength} digits")
            .WithErrorCode(ErrorCodes.TrainingProviderUkprnMustBeCorrectLength)
            .WithRuleId(ruleId);

            When(tp => tp.Ukprn.ToString().Length == UkprnLength, () =>
            {
                RuleFor(tp => tp)
                .TrainingProviderMustExistInRoatp(trainingProviderSummaryProvider)
                .TrainingProviderMustNotBeBlocked(blockedOrganisationRepo)
                .WithRuleId(ruleId);
            });
        }