예제 #1
0
 /// <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;
 }
예제 #2
0
 /// <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;
 }
예제 #3
0
        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;
        }