Пользовательская проверка Fluent validation

#c# #fluentvalidation

#c# #проверка fluentvalidation

Вопрос:

используя библиотеку Fluent Validation C #, у меня есть этот код, который в настоящее время проверяет сумму баланса, когда пользователь создает новый банковский счет.

 public class BankAccountValidator : AbstractValidator<BankAccount>
{
    private AppDbContext db = new AppDbContext();

    public BankAccountValidator()
    {

        RuleFor(x => x.Balance).GreaterThanOrEqualTo(50).WithMessage($"A minimum of $100.00 balance is required to open Saving bank account type.");


    }

}
  

Но теперь я добавил перечисление для AccountType: SavingAccount и CurrentAccount. Правила таковы, что для сохранения учетной записи требуется минимум 100,00 долларов, в то время как для текущей учетной записи требуется минимум 300,00 долларов. Как мне создать пользовательский метод для этой проверки, используя библиотеку Fluent Validation library?

Ответ №1:

Вы должны использовать When метод:

 When(x => x.AccountType == AccountType.SavingAccount, 
    () => RuleFor(x => x.Balance)
            .GreaterThanOrEqualTo(100)
            .WithMessage($"A minimum of $100.00 balance is required to open Saving bank account type."));

When(x => x.AccountType == AccountType.CurrentAccount,
    () => RuleFor(x => x.Balance)
            .GreaterThanOrEqualTo(300)
            .WithMessage($"A minimum of $300.00 balance is required to open Current bank account type."));