Свободный валидатор, когда другое свойство истинно - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь использовать FluentValidation для проверки свойства «Имя пользователя», если другое свойство «Найдено» имеет значение true.

Object Contains:
   string Username
   bool Found

RuleFor(x => x.Username)
    .NotEmpty().DependentRules(() => {
                RuleFor(y => y.Found).Equals(true); //Not valid syntax
            })
    .WithMessage("Not Found");

К сожалению, кажется, что нет простого способа сделать это?

1 Ответ

1 голос
/ 27 марта 2020

Используйте предложение When.

RuleFor(x => x.Username).NotEmpty().When(x => x.Found);

Рабочий пример

Зависимые правила немного отличаются; в основном, правила, указанные в блоке зависимых правил, будут проверяться только в том случае, если правило, к которому они присоединены, проходит.

Согласно doco

RuleFor(x => x.Surname).NotNull().DependentRules(() => {
  RuleFor(x => x.Forename).NotNull();
});

Здесь правило против Фамилии будет выполняться только в том случае, если правило «Фамилия» пройдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...