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 WageOrchestrator(IEmployerVacancyClient client, IRecruitVacancyClient vacancyClient, ILogger <WageOrchestrator> logger, IReviewSummaryService reviewSummaryService, IMinimumWageProvider minimumWageProvider) : base(logger)
 {
     _client               = client;
     _vacancyClient        = vacancyClient;
     _reviewSummaryService = reviewSummaryService;
     _minimumWageProvider  = minimumWageProvider;
 }
 public WageOrchestrator(IRecruitVacancyClient vacancyClient, ILogger <WageOrchestrator> logger, IReviewSummaryService reviewSummaryService, IMinimumWageProvider minimumWageProvider, IUtility utility) : base(logger)
 {
     _vacancyClient        = vacancyClient;
     _reviewSummaryService = reviewSummaryService;
     _minimumWageProvider  = minimumWageProvider;
     _utility = utility;
 }
 public SearchResultPreviewOrchestrator(IEmployerVacancyClient client, IRecruitVacancyClient vacancyClient, IGeocodeImageService mapService, IMinimumWageProvider wageProvider)
 {
     _client        = client;
     _vacancyClient = vacancyClient;
     _mapService    = mapService;
     _wageProvider  = wageProvider;
 }
 public EmployeeBonusesCalculator(
     IDateTimeProvider dateTimeProvider,
     IMinimumWageProvider minimumWageProvider,
     IEmployeesRepository employeesRepository)
 {
     _dateTimeProvider    = dateTimeProvider;
     _minimumWageProvider = minimumWageProvider;
     _employeesRepository = employeesRepository;
 }
        public FluentVacancyValidator(ITimeProvider timeProvider, IMinimumWageProvider minimumWageService, IApprenticeshipProgrammeProvider apprenticeshipProgrammesProvider, IQualificationsProvider qualificationsProvider, IHtmlSanitizerService htmlSanitizerService)
        {
            _timeProvider             = timeProvider;
            _minimumWageService       = minimumWageService;
            _qualificationsProvider   = qualificationsProvider;
            _apprenticeshipProgrammes = new Lazy <IEnumerable <IApprenticeshipProgramme> >(() => apprenticeshipProgrammesProvider.GetApprenticeshipProgrammesAsync().Result);
            _htmlSanitizerService     = htmlSanitizerService;

            SingleFieldValidations();

            CrossFieldValidations();
        }
Esempio n. 7
0
 public ReviewMapper(ILogger <ReviewMapper> logger,
                     IQaVacancyClient vacancyClient,
                     IGeocodeImageService mapService,
                     IMinimumWageProvider wageProvider,
                     IRuleMessageTemplateRunner ruleTemplateRunner,
                     IReviewSummaryService reviewSummaryService)
 {
     _logger               = logger;
     _vacancyClient        = vacancyClient;
     _mapService           = mapService;
     _wageProvider         = wageProvider;
     _qualifications       = new Lazy <IList <string> >(() => _vacancyClient.GetCandidateQualificationsAsync().Result.QualificationTypes);
     _ruleTemplateRunner   = ruleTemplateRunner;
     _reviewSummaryService = reviewSummaryService;
 }
        internal static IRuleBuilderInitial <Vacancy, Vacancy> FixedWageMustBeGreaterThanApprenticeshipMinimumWage(this IRuleBuilder <Vacancy, Vacancy> ruleBuilder, IMinimumWageProvider minimumWageService)
        {
            return(ruleBuilder.Custom((vacancy, context) =>
            {
                var wagePeriod = minimumWageService.GetWagePeriod(vacancy.StartDate.Value);

                if (vacancy.Wage.FixedWageYearlyAmount == null || vacancy.Wage.FixedWageYearlyAmount / 52 / vacancy.Wage.WeeklyHours < wagePeriod.ApprenticeshipMinimumWage)
                {
                    var minimumYearlyWageForApprentices = WagePresenter.GetDisplayText(WageType.ApprenticeshipMinimum, WageUnit.Annually, new WageDetails
                    {
                        HoursPerWeek = vacancy.Wage.WeeklyHours,
                        StartDate = vacancy.StartDate.Value
                    }).AsWholeMoneyAmount();

                    var errorMessage = (vacancy.Status == VacancyStatus.Live) ?
                                       $"National Minimum Wage is changing from {wagePeriod.ValidFrom:d MMM yyyy}. So the fixed wage you entered before will no longer be valid. Change the date to before {wagePeriod.ValidFrom:d MMM yyyy} or to change the wage, create a new vacancy." :
                                       $"Yearly wage must be at least {minimumYearlyWageForApprentices}";

                    var failure = new ValidationFailure(string.Empty, errorMessage)
                    {
                        ErrorCode = "49",
                        CustomState = VacancyRuleSet.MinimumWage,
                        PropertyName = $"{nameof(Wage)}.{nameof(Wage.FixedWageYearlyAmount)}"
                    };
                    context.AddFailure(failure);
                }
            }));
        }
        internal static IRuleBuilderInitial <Vacancy, Vacancy> FixedWageMustBeGreaterThanApprenticeshipMinimumWage(this IRuleBuilder <Vacancy, Vacancy> ruleBuilder, IMinimumWageProvider minimumWageService)
        {
            return(ruleBuilder.Custom((vacancy, context) =>
            {
                var wagePeriod = minimumWageService.GetWagePeriod(vacancy.StartDate.Value);

                if (vacancy.Wage.FixedWageYearlyAmount == null || vacancy.Wage.FixedWageYearlyAmount / 52 / vacancy.Wage.WeeklyHours < wagePeriod.ApprenticeshipMinimumWage)
                {
                    var errorMessage = (vacancy.Status == VacancyStatus.Live) ?
                                       $"National Minimum Wage is changing from {wagePeriod.ValidFrom:d MMM yyyy}. So the fixed wage you entered before will no longer be valid. Change the date to before {wagePeriod.ValidFrom:d MMM yyyy} or to change the wage, create a new vacancy." :
                                       $"The wage should not be less than the new National Minimum Wage for apprentices effective from {wagePeriod.ValidFrom:d MMM yyyy}";

                    var failure = new ValidationFailure(string.Empty, errorMessage)
                    {
                        ErrorCode = "49",
                        CustomState = VacancyRuleSet.MinimumWage
                    };
                    context.AddFailure(failure);
                }
            }));
        }