public void ValidateComment(Comment comment, out ValidationStateDictionary validationState) { validationState = new ValidationStateDictionary(); validationState.Add(typeof(Comment), validator.Validate(comment)); if (!(comment.Creator is User)) { validationState.Add(typeof(UserBase), validator.Validate(comment.Creator)); //some rules change for an anonymous user if (!string.IsNullOrEmpty(comment.Creator.HashedEmail) && validationState[typeof(UserBase)] != null && validationState[typeof(UserBase)].Errors.Where(v => v.Name != "Email").FirstOrDefault() == null) { validationState.Remove(typeof(UserBase)); } } }