Код: Выделить всё
public IReadOnlyCollection IntegerParameters { get; init; }
public IReadOnlyCollection StringParameters { get; init; }
public IReadOnlyCollection BooleanParameters { get; init; }
Что у меня есть на данный момент
Я написал общий валидатор:
Код: Выделить всё
internal class ListUniqueValidator : PropertyValidator
{
public override string Name => "ListUniqueValidator";
public override bool IsValid(ValidationContext context, IList list)
{
var duplicates = list
.GroupBy(x => x)
.Where(group => group.Count() == 1)
.Select(group => group.Key.ToString())
.ToList();
context.MessageFormatter.AppendArgument("Duplicates", string.Join(", ", duplicates));
return duplicates.Count > 0;
}
///
protected override string GetDefaultMessageTemplate(string errorCode)
=> "{PropertyName} must contain all unique elements. Duplicates: {Duplicates}";
}
Код: Выделить всё
RuleFor(x => x)
// Concat IntegerParameters, StringParameters, BooleanParameters?
// Get Name property?
// What goes here?
.SetValidator(new ListUniqueValidator());
Подробнее здесь: https://stackoverflow.com/questions/793 ... luentvalid
Мобильная версия