Ner*_*erf 5 c# fluentvalidation
我有课:
Sponsored { int Order };
Run Code Online (Sandbox Code Playgroud)
我收集了它:
IEnumerable<Sponsored> sponsored;
Run Code Online (Sandbox Code Playgroud)
我想检查Order这个集合是否是唯一的。
我可以通过 做吗FluentValidation?
我有:
SponsoredValidator : AbstractValidator<IEnumerable<Sponsored>>
Run Code Online (Sandbox Code Playgroud)
和
SponsoredValidator : AbstractValidator<Sponsored>
Run Code Online (Sandbox Code Playgroud)
@Edit:它应该通过 ValidationAttribute 与 WebAPI POST 方法连接
[Validator(typeof(SponsoredValidator))]
Run Code Online (Sandbox Code Playgroud)
public class SponsoredCollectionValidator : AbstractValidator<IEnumerable<Sponsored>>
{
private class SponsoredComparer : IEqualityComparer<Sponsored>
{
public bool Equals(Sponsored x, Sponsored y) => x?.Order == y?.Order;
public int GetHashCode(Sponsored obj) => obj.Order;
}
public SponsoredCollectionValidator()
{
RuleFor(coll => coll)
.Must(coll => coll.Distinct(new SponsoredComparer()).Count() == coll.Count())
.WithMessage("Elements are not unique.");
}
}
Run Code Online (Sandbox Code Playgroud)