Могу ли я использовать функцию в лямбда RuleFor? - PullRequest
0 голосов
/ 06 июня 2019

В документации

Чтобы указать правило проверки для определенного свойства, вызовите метод RuleFor, передав лямбда-выражение, которое указывает свойство, которое вы хотите проверить.

означает ли это, что я должен писать только в лямбда-свойствах?

Могу ли я использовать метод расширения IsSomeCheck ()?

Это больше стиля кода для RuleFor или это критично?

 RuleFor(x => x.IsSomeCheck())
              .NotEqual(true)
              .WithMessage("Some Text!");

Например, у меня есть

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    bool BeAverageHumanAge()
    {
      return (Age >= 0 && Age <= 100);
    }
}

Итак

RuleFor(x => x.BeAverageHumanAge())
              .NotEqual(true)
              .WithMessage("Some Text!");

Это незаконно?

1 Ответ

1 голос
/ 06 июня 2019

В лямбда-выражении метода RuleFor мы указываем свойство, по которому мы хотим, чтобы проверка прошла.Например, рассмотрим класс с именем Person-

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

Если вы хотите проверить возраст экземпляра Person, вы можете написать правило следующим образом:

RuleFor(x => x.Age)
              .GreaterThan(0)      // in-built validator method
              .WithMessage("Age must be greater than 0");

Предположим,Вы хотите добавить некоторую пользовательскую проверку возраста, затем вы можете написать свой собственный метод для этого.Примерно так:

bool BeAverageHumanAge(int age)
{
    if(age >= 0 && age <= 100)
        return true;
    return false;
}

Этот метод можно использовать для проверки возраста примерно так:

RuleFor(x => x.Age)
              .Must(BeAverageHumanAge)      // invoking custom validation method
              .WithMessage("Age does not lie in average human age range");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...