2015-12-15 4 views
1

У меня есть метод Post и на основе данных Добавлено Я верну результат. Я хочу выполнить проверку только в том случае, если поля предоставлены. Если значение не опубликовано, я не хочу выполнять проверку. Это то, что у меня есть сейчас. Очевидно, что если значение равно null, оно будет разбиваться, поскольку оно ожидает значения, как я могу это решить?Fluent Validation только в том случае, если значение задано

public bool IsValidAvailability(int AvailabiltyValue) 
{ 
    if (AvailabiltyValue > AvailabilityMax || AvailabiltyValue < AvailabilityMin) 
     return false; 
    return true; 
} 

Это мои правила для проверки. Могу ли я добавить что-нибудь, чтобы сделать эту проверку ниже, только если это значение предоставлено?

RuleFor(x => (int)x.Availability).Must(validatorServices.IsValidAvailability).WithMessage("Availability must be between " + validatorServices.AvailabilityMin + " and " + validatorServices.AvailabilityMax); 

ответ

3

Вы можете сделать это за счет использования When и Unless методов.

Методы When и Unless могут использоваться для указания условий, которые будут контролироваться при выполнении правила. Например, это правило на CustomerDiscount имущество будет выполняться только тогда, когда IsPreferredCustomer является true:

RuleFor(customer => customer.CustomerDiscount) 
    .GreaterThan(0) 
    .When(customer => customer.IsPreferredCustomer); 

Вы можете проверить документацию here.

 Смежные вопросы

  • Нет связанных вопросов^_^