Пример #1
0
 public CompareValidator(string errorMessage, PropertyInfo propertyInfo, ComparableOperator comparisonOperator, object valueToCompare)
     : base(errorMessage, propertyInfo)
 {
     this.comparableOperator = comparisonOperator;
     this.valueToCompare     = valueToCompare;
     if (string.IsNullOrEmpty(errorMessage))
     {
         this.ErrorMessage = string.Format(Resources.DefaultErrorMessages.Compare, propertyInfo.Name, this.comparableOperator.ToString(), this.valueToCompare);
     }
 }
Пример #2
0
        /// <summary>
        /// Compares the current instance with another object of the same type and returns a boolean that indicates whether the ternary operation between the two values is true or false.
        /// </summary>
        /// <param name="currentValue">The value.</param>
        /// <param name="comparableOperator">The ternary operator.</param>
        /// <param name="value">The value to compare to.</param>
        /// <typeparam name="T">The values type.</typeparam>
        /// <returns>The bolean result of the ternary operation.</returns>
        public static bool CompareTo <T>(this T currentValue, ComparableOperator comparableOperator, T value)
            where T : IComparable
        {
            if (currentValue == null)
            {
                switch (comparableOperator)
                {
                case ComparableOperator.Equal:
                case ComparableOperator.LessThanOrEqual:
                case ComparableOperator.GreaterThanOrEqual:
                    return(value == null);

                case ComparableOperator.NotEqual:
                case ComparableOperator.LessThan:
                case ComparableOperator.GreaterThan:
                    return(value != null);

                default:
                    throw new ArgumentOutOfRangeException(nameof(comparableOperator), comparableOperator, null);
                }
            }

            var result = currentValue.CompareTo(value);

            switch (comparableOperator)
            {
            case ComparableOperator.Equal:
                return(result == 0);

            case ComparableOperator.NotEqual:
                return(result != 0);

            case ComparableOperator.LessThan:
                return(result < 0);

            case ComparableOperator.LessThanOrEqual:
                return(result <= 0);

            case ComparableOperator.GreaterThan:
                return(result > 0);

            case ComparableOperator.GreaterThanOrEqual:
                return(result >= 0);

            default:
                throw new ArgumentOutOfRangeException(nameof(comparableOperator), comparableOperator, null);
            }
        }
Пример #3
0
 public CompareValidatorAttribute(ComparableOperator comparableOperator, object valueToCompare)
 {
     this.comparableOperator = comparableOperator;
     this.valueToCompare     = valueToCompare;
 }
Пример #4
0
 public static CompareValidator CreateValidator(Type type, string errorMessage, string propertyName, ComparableOperator comparisonOperator, object valueToCompare)
 {
     return(new CompareValidator(errorMessage, Validator.GetPropertyInfo(type, propertyName), comparisonOperator, valueToCompare));
 }
Пример #5
0
 public static CompareValidator CreateValidator <T>(string errorMessage, string propertyName, ComparableOperator comparisonOperator, object valueToCompare)
 {
     return(CreateValidator(typeof(T), errorMessage, propertyName, comparisonOperator, valueToCompare));
 }
Пример #6
0
 public CompareValidator(PropertyInfo propertyInfo, ComparableOperator comparisonOperator, object valueToCompare)
     : this(null, propertyInfo, comparisonOperator, valueToCompare)
 {
 }
Пример #7
0
 public ComparableCondition(T value, ComparableOperator op) : base(value, op)
 {
 }