public override Boolean IsValid(Object value) { Type objectType = value.GetType(); //PropertyInfo piUser = objectType.GetProperties() // .Where(p => p.Name == UserIdField) // .FirstOrDefault(); PropertyInfo piEmail = objectType.GetProperties() .Where(p => p.Name == EmailField) .FirstOrDefault(); PropertyInfo piUsername = objectType.GetProperties() .Where(p => p.Name == UsernameField) .FirstOrDefault(); if (piEmail == null || piUsername == null) { throw new ApplicationException("UserConstraintAttribute error on " + objectType.Name); } //int uid = Convert.ToInt32(piUser.GetValue(value, null)); string email = Convert.ToString(piEmail.GetValue(value, null)); string username = Convert.ToString(piUsername.GetValue(value, null)); UserService service = new UserService(); return service.IsAvailableEmail(0, email) && service.IsAvailableUsername(username); }