#c# #fluentvalidation
#c# #плавная проверка
Вопрос:
У меня есть sort prop, который может быть пустым или иметь такие значения, как:
sort=""
sort=["name","desc"]
sort=["name","asc"]
RuleFor(r => r.Sort)
.NotEmpty()
.When(nr => nr.Contains("name"))
.WithMessage("Invalid Sort");
Как разрешить пустое и непустое, содержащее строку?
Комментарии:
1. Для какого типа вы используете
r.Sort
? Так ли этоstring
? Так ли этоIEnumerable<string>
? Что-то другое?
Ответ №1:
Вы могли бы просто указать пользовательское правило. Предполагается Sort
, что string[]
:
RuleFor(r => r.Sort)
.NotNull()
.Must(x => x.Length == 0 || (x.Length == 2 amp;amp; x[0] == "name" amp;amp;
(x[1] == "desc" || x[1] == "asc")))
.WithMessage(...);
И если вам нужно повторно использовать эту логику, просто используйте пользовательский конструктор правил, как описано здесь .