internal static void AddVacancySummaryViewModelDatesServerCommonRules(this AbstractValidator <FurtherVacancyDetailsViewModel> validator, string parentPropertyName)
        {
            validator.Custom(x =>
            {
                if (x.Wage.Classification == WageClassification.Custom &&
                    x.Wage.CustomType == CustomWageType.Fixed)
                {
                    return(x.HaveAValidHourRate(x.Wage.Amount, parentPropertyName, "Wage.Amount"));
                }
                return(null);
            });


            validator.Custom(
                x =>
            {
                if (x.Wage.Classification == WageClassification.Custom &&
                    x.Wage.CustomType == CustomWageType.Ranged)
                {
                    return(x.HaveAValidHourRate(x.Wage.AmountLowerBound, parentPropertyName, "Wage.AmountLowerBound"));
                }
                return(null);
            });

            validator.RuleFor(x => x.VacancyDatesViewModel).SetValidator(new VacancyDatesViewModelServerCommonValidator());
        }
        internal static void AddVacancySummaryViewModelDatesServerWarningRules(this AbstractValidator <FurtherVacancyDetailsViewModel> validator, string parentPropertyName)
        {
            validator.Custom(x => x.ExpectedDurationGreaterThanOrEqualToMinimumDuration(x.Duration, parentPropertyName));

            var parentPropertyNameToUse = string.IsNullOrWhiteSpace(parentPropertyName)
                ? "VacancyDatesViewModel"
                : parentPropertyName + ".VacancyDatesViewModel";

            validator.RuleFor(x => x.VacancyDatesViewModel)
            .SetValidator(new VacancyDatesViewModelServerWarningValidator(parentPropertyNameToUse));
        }
Exemple #3
0
 public static void ObjectRule <T>(this AbstractValidator <T> validator, Func <T, string> customValidation)
 {
     validator.Custom(
         x =>
     {
         string error = customValidation(x);
         if (string.IsNullOrEmpty(error))
         {
             return(null);
         }
         return(new ValidationFailure(string.Empty, error, x));
     });
 }
Exemple #4
0
        internal static void AddServerWarningRules(this AbstractValidator <VacancyDatesViewModel> validator,
                                                   string parentPropertyName)
        {
            validator.RuleFor(x => x.ClosingDate)
            .Must(Common.BeTwoWeeksInTheFuture)
            .WithMessage(VacancyViewModelMessages.ClosingDate.TooSoonErrorText)
            .WithState(s => ValidationType.Warning)
            .When(IsNewVacancy);

            validator.RuleFor(x => x.PossibleStartDate)
            .Must(Common.BeTwoWeeksInTheFuture)
            .WithMessage(VacancyViewModelMessages.PossibleStartDate.TooSoonErrorText)
            .WithState(s => ValidationType.Warning)
            .When(x => x.ClosingDate == null || !x.ClosingDate.HasValue);

            validator.Custom(x => x.PossibleStartDateShouldBeAfterClosingDate(x.ClosingDate, parentPropertyName));
        }