У меня есть валидатор с двумя RuleSets. Первый RuleSet имеет 4 правила, а второй имеет 2 правила. Когда я вызываю Validate с каждым RuleSet индивидуально, я получаю правильное количество ошибок (4 и 2), но когда я их называю вместе, у меня нет НИКАКИХ ошибок ... Для жизни я не могу понять, почему - любой Помогите оценить!ServiceStack FluentValidation - Проблема с несколькими наборами правил
(Примечание: Во всех случаях 6 свойств испытывается устанавливаются на нуль ...)
Validator:
public class ClientValidator : AbstractValidator<Client> {
public ClientValidator() {
RuleSet("RequiredHomeValidations",() => {
RuleFor(client => client.Street)
.NotEmpty()
.WithMessage("Client's street address is required.");
RuleFor(client => client.City)
.NotEmpty()
.WithMessage("Client's city is required.");
RuleFor(client => client.State)
.NotEmpty()
.WithMessage("Client's state is required.");
RuleFor(client => client.ZipCode)
.NotEmpty()
.WithMessage("Client's ZIP Code is required.");
});
RuleSet("RequiredContactsValidations",() => {
RuleFor(client => client.PrimaryContactFirstName)
.NotEmpty()
.WithMessage("First name of client's primary contact is required.");
RuleFor(client => client.PrimaryContactLastName)
.NotEmpty()
.WithMessage("Last name of client's primary contact is required.");
});
Звонки Проверка:
//ValidationResult requiredFieldsValidationResult = this.ClientValidator.Validate(client, ruleSet: "RequiredHomeValidations"); <-- 4 ERRORS
//ValidationResult requiredFieldsValidationResult = this.ClientValidator.Validate(client, ruleSet: "RequiredContactsValidations"); <-- 2 ERRORS
ValidationResult requiredFieldsValidationResult = this.ClientValidator.Validate(client, ruleSet: "RequiredHomeValidations, RequiredContactsValidations"); <-- 0 ERRORS, .IsValid == true
Я надеялся, что это что-то в этом роде. Еще раз спасибо за отличный продукт и отличную поддержку! – user2220004
mythz - существует ли ограничение на количество допустимых наборов правил? Теперь у меня есть 4 набора правил - A, B, C и D. В моем тестовом случае A производит две ошибки, а C - одну. B и D не производят. Когда я запускаю их все вместе, я получаю только две ошибки от A. Когда я запускаю A и BI, получаю два из A, а когда я запускаю C и D, я получаю сообщение от C. Не знаю, почему я не получаю все три, когда я запускаю их всех вместе? – user2220004
@ user2220004 Какое поведение имеет обычная библиотека [FluentValidation] (https://github.com/JeremySkinner/FluentValidation)? – mythz