Code: Select all
public IReadOnlyCollection IntegerParameters { get; init; }
public IReadOnlyCollection StringParameters { get; init; }
public IReadOnlyCollection BooleanParameters { get; init; }
Was ich bisher habe
Ich habe ein Generikum geschrieben Validator:
Code: Select all
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}";
}
Code: Select all
RuleFor(x => x)
// Concat IntegerParameters, StringParameters, BooleanParameters?
// Get Name property?
// What goes here?
.SetValidator(new ListUniqueValidator());