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); } }
/// <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); } }
public CompareValidatorAttribute(ComparableOperator comparableOperator, object valueToCompare) { this.comparableOperator = comparableOperator; this.valueToCompare = valueToCompare; }
public static CompareValidator CreateValidator(Type type, string errorMessage, string propertyName, ComparableOperator comparisonOperator, object valueToCompare) { return(new CompareValidator(errorMessage, Validator.GetPropertyInfo(type, propertyName), comparisonOperator, valueToCompare)); }
public static CompareValidator CreateValidator <T>(string errorMessage, string propertyName, ComparableOperator comparisonOperator, object valueToCompare) { return(CreateValidator(typeof(T), errorMessage, propertyName, comparisonOperator, valueToCompare)); }
public CompareValidator(PropertyInfo propertyInfo, ComparableOperator comparisonOperator, object valueToCompare) : this(null, propertyInfo, comparisonOperator, valueToCompare) { }
public ComparableCondition(T value, ComparableOperator op) : base(value, op) { }