public override bool Validate(string value) { var comparer = new ComparerFactory().GetComparer(Type); if (!comparer.TryConvert(value, false, out var convertedValue)) { return(false); } if (Operator == ValidationCompareOperator.DataTypeCheck) { return(true); } if (!comparer.TryConvert(ValueToCompare, CultureInvariantValues, out var valueToCompare)) { return(true); } var compareResult = comparer.CompareTo(convertedValue, valueToCompare); return(Operator switch { EqualCompareOperator e => compareResult == 0, NotEqualCompareOperator e => compareResult != 0, GreaterThanCompareOperator g => compareResult > 0, GreaterThanEqualCompareOperator g => compareResult >= 0, LessThanCompareOperator l => compareResult < 0, LessThanEqualCompareOperator l => compareResult <= 0, _ => true });
protected bool Compare(string leftText, bool cultureInvariantLeftText, string rightText, bool cultureInvariantRightText, ValidationCompareOperator op, ValidationDataType type) { var comparer = new ComparerFactory().GetComparer(type); if (!comparer.TryConvert(leftText, cultureInvariantLeftText, out var leftValue)) { return(false); } if (op == ValidationCompareOperator.DataTypeCheck) { return(true); } if (!comparer.TryConvert(rightText, cultureInvariantRightText, out var rightValue)) { return(true); } var compareResult = comparer.CompareTo(leftValue, rightValue); return(op switch { EqualCompareOperator _ => compareResult == 0, NotEqualCompareOperator _ => compareResult != 0, GreaterThanCompareOperator _ => compareResult > 0, GreaterThanEqualCompareOperator _ => compareResult >= 0, LessThanCompareOperator _ => compareResult < 0, LessThanEqualCompareOperator _ => compareResult <= 0, _ => true });