/// <summary> /// Initializes a new instance of the RequiredFieldValidator class. /// </summary> public CompareValidator(string errorMessage, string optionalValidationGroup, Control controlToCompare, eValidationCompareOperator compareOperator) { this.ErrorMessage = errorMessage; this.OptionalValidationGroup = optionalValidationGroup; this.ControlToCompare = controlToCompare; this.Operator = compareOperator; }
/// <summary> /// Initializes a new instance of the RequiredFieldValidator class. /// </summary> public CompareValidator(string errorMessage, string optionalValidationGroup, object valueToCompare, eValidationCompareOperator compareOperator) { this.ErrorMessage = errorMessage; this.OptionalValidationGroup = optionalValidationGroup; this.ValueToCompare = valueToCompare; this.Operator = compareOperator; }
internal static bool Compare(object leftValue, object rightValue, eValidationCompareOperator compareOperator) { if (compareOperator == eValidationCompareOperator.DataTypeCheck) { if (leftValue != null && rightValue != null) return leftValue.GetType().Equals(rightValue.GetType()); else return leftValue == rightValue; } if (leftValue == null && rightValue == null) return true; if (leftValue == null || rightValue == null) return false; if (!leftValue.GetType().Equals(rightValue.GetType()) && rightValue is string) { object temp = null; if (ConvertRightToLeftType(leftValue, rightValue, out temp)) rightValue = temp; } if (!leftValue.GetType().Equals(rightValue.GetType())) return false; int compareResult = 0; if (leftValue is string) compareResult = ((string)leftValue).CompareTo(rightValue); else if (leftValue is int) compareResult = ((int)leftValue).CompareTo(rightValue); else if (leftValue is double) compareResult = ((double)leftValue).CompareTo(rightValue); else if (leftValue is long) compareResult = ((long)leftValue).CompareTo(rightValue); else if (leftValue is DateTime) compareResult = ((DateTime)leftValue).CompareTo(rightValue); else if (leftValue is decimal) compareResult = ((decimal)leftValue).CompareTo(rightValue); else if (leftValue is Single) compareResult = ((Single)leftValue).CompareTo(rightValue); else if (leftValue is bool) compareResult = ((bool)leftValue).CompareTo(rightValue); else if (leftValue is TimeSpan) compareResult = ((TimeSpan)leftValue).CompareTo(rightValue); else if (leftValue is byte) compareResult = ((byte)leftValue).CompareTo(rightValue); else if (leftValue is char) compareResult = ((char)leftValue).CompareTo(rightValue); else if (leftValue is Guid) compareResult = ((Guid)leftValue).CompareTo(rightValue); else return true; switch (compareOperator) { case eValidationCompareOperator.Equal: return (compareResult == 0); case eValidationCompareOperator.NotEqual: return (compareResult != 0); case eValidationCompareOperator.GreaterThan: return (compareResult > 0); case eValidationCompareOperator.GreaterThanEqual: return (compareResult >= 0); case eValidationCompareOperator.LessThan: return (compareResult < 0); case eValidationCompareOperator.LessThanEqual: return (compareResult <= 0); } return true; }