public static RuleExpressionInfo Validate(RuleValidation validation, CodeExpression expression, bool isWritten) { if (validation == null) { throw new ArgumentNullException("validation"); } // See if we've visited this node before. // Always check if written = true RuleExpressionInfo resultExprInfo = null; if (!isWritten) { resultExprInfo = validation.ExpressionInfo(expression); } if (resultExprInfo == null) { // First time we've seen this node. RuleExpressionInternal ruleExpr = GetExpression(expression); if (ruleExpr == null) { string message = string.Format(CultureInfo.CurrentCulture, Messages.CodeExpressionNotHandled, expression.GetType().FullName); ValidationError error = new ValidationError(message, ErrorNumbers.Error_CodeExpressionNotHandled); error.UserData[RuleUserDataKeys.ErrorObject] = expression; if (validation.Errors == null) { string typeName = string.Empty; if ((validation.ThisType != null) && (validation.ThisType.Name != null)) { typeName = validation.ThisType.Name; } string exceptionMessage = string.Format( CultureInfo.CurrentCulture, Messages.ErrorsCollectionMissing, typeName); throw new InvalidOperationException(exceptionMessage); } else { validation.Errors.Add(error); } return(null); } resultExprInfo = validation.ValidateSubexpression(expression, ruleExpr, isWritten); } return(resultExprInfo); }
public static RuleExpressionInfo Validate(RuleValidation validation, CodeExpression expression, bool isWritten) { if (validation == null) { throw new ArgumentNullException("validation"); } RuleExpressionInfo info = null; if (!isWritten) { info = validation.ExpressionInfo(expression); } if (info != null) { return(info); } RuleExpressionInternal ruleExpr = GetExpression(expression); if (ruleExpr == null) { ValidationError item = new ValidationError(string.Format(CultureInfo.CurrentCulture, Messages.CodeExpressionNotHandled, new object[] { expression.GetType().FullName }), 0x548); item.UserData["ErrorObject"] = expression; if (validation.Errors == null) { string name = string.Empty; if ((validation.ThisType != null) && (validation.ThisType.Name != null)) { name = validation.ThisType.Name; } throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Messages.ErrorsCollectionMissing, new object[] { name })); } validation.Errors.Add(item); return(null); } return(validation.ValidateSubexpression(expression, ruleExpr, isWritten)); }
public static RuleExpressionInfo Validate(RuleValidation validation, CodeExpression expression, bool isWritten) { if (validation == null) { throw new ArgumentNullException("validation"); } RuleExpressionInfo info = null; if (!isWritten) { info = validation.ExpressionInfo(expression); } if (info != null) { return info; } RuleExpressionInternal ruleExpr = GetExpression(expression); if (ruleExpr == null) { ValidationError item = new ValidationError(string.Format(CultureInfo.CurrentCulture, Messages.CodeExpressionNotHandled, new object[] { expression.GetType().FullName }), 0x548); item.UserData["ErrorObject"] = expression; if (validation.Errors == null) { string name = string.Empty; if ((validation.ThisType != null) && (validation.ThisType.Name != null)) { name = validation.ThisType.Name; } throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Messages.ErrorsCollectionMissing, new object[] { name })); } validation.Errors.Add(item); return null; } return validation.ValidateSubexpression(expression, ruleExpr, isWritten); }
public static RuleExpressionInfo Validate(RuleValidation validation, CodeExpression expression, bool isWritten) { if (validation == null) throw new ArgumentNullException("validation"); // See if we've visited this node before. // Always check if written = true RuleExpressionInfo resultExprInfo = null; if (!isWritten) resultExprInfo = validation.ExpressionInfo(expression); if (resultExprInfo == null) { // First time we've seen this node. RuleExpressionInternal ruleExpr = GetExpression(expression); if (ruleExpr == null) { string message = string.Format(CultureInfo.CurrentCulture, Messages.CodeExpressionNotHandled, expression.GetType().FullName); ValidationError error = new ValidationError(message, ErrorNumbers.Error_CodeExpressionNotHandled); error.UserData[RuleUserDataKeys.ErrorObject] = expression; if (validation.Errors == null) { string typeName = string.Empty; if ((validation.ThisType != null) && (validation.ThisType.Name != null)) { typeName = validation.ThisType.Name; } string exceptionMessage = string.Format( CultureInfo.CurrentCulture, Messages.ErrorsCollectionMissing, typeName); throw new InvalidOperationException(exceptionMessage); } else { validation.Errors.Add(error); } return null; } resultExprInfo = validation.ValidateSubexpression(expression, ruleExpr, isWritten); } return resultExprInfo; }