protected override ValidationResult IsValid(object value, ValidationContext validationContext) { IEntityWithTypedId <int> entityToValidate = validationContext.ObjectInstance as IEntityWithTypedId <int>; if (entityToValidate == null) { throw new InvalidOperationException( "This validator must be used at the class level of an IEntityWithTypedId<int>. " + "The type you provided was " + validationContext.ObjectInstance.GetType()); } IEntityDuplicateChecker duplicateChecker = DependencyResolver.Current.GetService <IEntityDuplicateChecker>(); if (duplicateChecker == null) { throw new TypeLoadException("IEntityDuplicateChecker has not been registered with IoC"); } if (duplicateChecker.DoesDuplicateExistWithTypedIdOf(entityToValidate)) { return(new ValidationResult(String.Empty)); } return(null); }
public bool IsValid(object value, IConstraintValidatorContext constraintValidatorContext) { IEntityWithTypedId <int> entityToValidate = value as IEntityWithTypedId <int>; Check.Require(entityToValidate != null, "This validator must be used at the class level of an " + "IdomainWithTypedId<int>. The type you provided was " + value.GetType().ToString()); IEntityDuplicateChecker duplicateChecker = SafeServiceLocator <IEntityDuplicateChecker> .GetService(); return(!duplicateChecker.DoesDuplicateExistWithTypedIdOf <int>(entityToValidate)); }
public bool IsValid(object value, IConstraintValidatorContext constraintValidatorContext) { IEntityWithTypedId <string> entityToValidate = value as IEntityWithTypedId <string>; Check.Require(entityToValidate != null, "This validator must be used at the class level of an " + "IdomainWithTypedId<string>. The type you provided was " + value.GetType().ToString() + ". " + "Other validators exist for various Id types. Please open an issue with S#arp Architecture " + "if you need a new Id type supported; you can make your own in the meantime."); IEntityDuplicateChecker duplicateChecker = SafeServiceLocator <IEntityDuplicateChecker> .GetService(); return(!duplicateChecker.DoesDuplicateExistWithTypedIdOf <string>(entityToValidate)); }