private bool checkExpression(eExpression exp, object value, string value1, string value2) { IComparable v = value as IComparable; IComparable v1 = value1, v2 = value2; if (value is Int32) { v1 = Int32.Parse(value1); if (!string.IsNullOrEmpty(value2)) v2 = Int32.Parse(value2); } else if (value is Double) { v1 = Double.Parse(value1); if (!string.IsNullOrEmpty(value2)) v2 = Double.Parse(value2); } else if (value is DateTime) { v1 = DateTime.Parse(value1); if (!string.IsNullOrEmpty(value2)) v2 = DateTime.Parse(value2); } int n1 = v.CompareTo(v1); int n2 = v.CompareTo(v2); switch (exp) { case eExpression.Between: if (n1 >= 0 && n2 <= 0) return true; break; case eExpression.LessThan: if (n1 < 0) return true; break; case eExpression.LessThanOrEqual: if (n1 <= 0) return true; break; case eExpression.Equal: if (n1 == 0) return true; break; case eExpression.GreaterThanOrEqual: if (n1 >= 0) return true; break; case eExpression.GreaterThan: if (n2 > 0) return true; break; } return false; }
private bool checkExpression(eExpression exp, object value, string value1, string value2) { IComparable v = value as IComparable; IComparable v1 = value1, v2 = value2; if (value is Int32) { v1 = Int32.Parse(value1); if (!string.IsNullOrEmpty(value2)) { v2 = Int32.Parse(value2); } } else if (value is Double) { v1 = Double.Parse(value1); if (!string.IsNullOrEmpty(value2)) { v2 = Double.Parse(value2); } } else if (value is DateTime) { v1 = DateTime.Parse(value1); if (!string.IsNullOrEmpty(value2)) { v2 = DateTime.Parse(value2); } } int n1 = v.CompareTo(v1); int n2 = v.CompareTo(v2); switch (exp) { case eExpression.Between: if (n1 >= 0 && n2 <= 0) { return(true); } break; case eExpression.LessThan: if (n1 < 0) { return(true); } break; case eExpression.LessThanOrEqual: if (n1 <= 0) { return(true); } break; case eExpression.Equal: if (n1 == 0) { return(true); } break; case eExpression.GreaterThanOrEqual: if (n1 >= 0) { return(true); } break; case eExpression.GreaterThan: if (n2 > 0) { return(true); } break; } return(false); }