Установить код ошибки по умолчанию для всех вхождений Rule (). NotEmpty (); - PullRequest
0 голосов
/ 08 июня 2019

Мне нужно установить поле ErrorCode для каждого сбоя проверки того же вида.

У нас есть список ошибок приложения, которые мы можем отправить, когда в нашем API возникает ошибка.Как заставить FluentValidation всегда возвращать определенный код ошибки в объекте ValidationFailure, не добавляя вручную к каждому правилу .WithErrorCode(myErrorCode)

Прямо сейчас мне придется все время выполнять следующее.

RuleFor(x => x.SomeField).NotEmpty().WithErrorCode(errorCodes['EmptyField']);

Я надеюсь на что-то, что я могу установить глобально, которое будет использовать код ошибки по умолчанию для определенного правила.

1 Ответ

0 голосов
/ 12 июня 2019

Я бы предложил написать собственный метод расширения для этого:

public static class FluentValidationExtendions
{
    public static IRuleBuilderOptions<T, TProperty> NotEmptyWithDefaultCode<T, TProperty>(this IRuleBuilder<T, TProperty> ruleBuilder, string errorCode = null)
    {
        return ruleBuilder.NotEmpty().WithErrorCode(errorCode ?? errorCodes['EmptyField']);
    }
}

Использование:

RuleFor(x => x.SomeField).NotEmptyWithDefaultCode();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...