public UniquePropertyValidator( IRepository repository, IInstanceQueryData <T> queryData) : base("Property {PropertyName} should be unique!") { Contract.Assert(repository != null); Contract.Assert(queryData != null); this.repository = repository; this.queryData = queryData; }
public static IRuleBuilderOptions <T, TProperty> Uniqness <T, TProperty, TBase>( this IRuleBuilderOptions <T, TProperty> ruleBuilder, IRepository repository, IInstanceQueryData <TBase> queryData) where T : class, IEntity where TBase : class, IEntity { var validator = new UniquePropertyValidator <TBase>(repository, queryData); ruleBuilder.SetValidator(validator); // TODO: use state /*validator.CustomStateProvider = t => new ValidationFailureState(ViolationCodeNames.NonUniqueState);*/ return(ruleBuilder); }