Обозначение состояния в сообщении об ошибке FluentValidation - PullRequest
0 голосов
/ 05 июля 2019

Я использую метод верхнего уровня When () для условного выполнения проверки на основе состояния объекта, например,

When(c => c.Status == "Existing", () => {
  RuleFor(c => c.Code).NotEmpty();
  RuleFor...
});

Хотя код очень прост для чтения и отслеживания, встроенный обмен сообщениями об ошибках оставляет желать лучшего, поскольку он не предоставляет потребителю никакого контекста относительно причины возникновения ошибки, например, FluentValidation.ValidationException: Validation failed: -- Code: 'Code' must not be empty. Code требуется только тогда, когда объект находится в определенном Status. Я хотел бы, чтобы в сообщении об ошибке указывалось условие, связанное с ошибкой проверки, т.е. FluentValidation.ValidationException: Validation failed: -- Code: 'Code' must not be empty when Customer is in 'Existing' status.

В идеале я хотел бы полагаться на существующие встроенные сообщения об ошибках и просто добавлять или оборачивать их по отдельности или в массовом порядке. Я не хочу переопределять сообщение об ошибке для каждого валидатора в условии. Я не вижу никаких встроенных средств для этого. Я скучаю по одному? Есть ли способ достичь этого с низким коэффициентом трения?

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