Я пытаюсь выяснить, как определить правило, которое позволяет свойству коллекции быть нулевым, но не пустым. Предоставление нулевого значения для свойства коллекции, являющегося допустимым вариантом использования, но когда коллекция предоставлена, в коллекции должна быть хотя бы одна запись. Следовательно:
// Valid
{
"codes": null
}
// Invalid
{
"codes": []
}
// Valid
{
"codes": ["Pass"]
}
Я играл и не могу найти ничего, что работает:
public class UpdateCodesRequest
{
public IEnumerable<string> Codes { get; set; }
}
public class UpdateCodesRequestValidator : AbstractValidator<UpdateCodesRequest>
{
public UpdateCodesRequestValidator()
{
// none of these will work if Codes is null
RuleFor(x => x.Codes.Count()).GreaterThan(0).When(x => x != null);
RuleFor(x => x.Codes).Must(x => x.Any()).When(x => x != null);
RuleFor(x => x.Codes).Must(x => x != null && x.Any()).When(x => x != null);
}
}