/// <summary> /// 小于条件解析 /// </summary> /// <param name="condition">需要解析的条件对象</param> /// <returns>返回解析后的条件字符串</returns> protected override string LessThanParse(LessThanCondition condition) { StringBuilder conditionStr = new StringBuilder(" "); string queryColName = condition.SearchColumn.CurrentSearcher.TableName + "." + condition.SearchColumn.ColumnName; if (string.IsNullOrEmpty(condition.SearchColumn.ConditionString)) { conditionStr.Append(queryColName); } else { conditionStr.Append(condition.SearchColumn.ConditionString.Replace(SQLPlaceholder.ColName, queryColName)); } conditionStr.Append(" < "); if (condition.ParamValue is SearchColumn) { SearchColumn tmpColumn = (SearchColumn)condition.ParamValue; string valueColName = tmpColumn.CurrentSearcher.TableName + "." + tmpColumn.ColumnName; conditionStr.Append(valueColName); } else { string paramName = "P" + Guid.NewGuid().ToString().ToLower().Replace("-", ""); conditionStr.Append("@" + paramName); ParamCollection.Add(new MySqlParameter(paramName, condition.ParamValue)); } conditionStr.Append(" "); return(conditionStr.ToString()); }
public void RubberStamp_Conditions_LessThanCondition_SetMessage_Test() { var condition = new LessThanCondition <TestClass, string>(p => p.Name, "TEST") .SetMessage("Error message"); Assert.AreEqual("Error message", condition.Message); }
public void RubberStamp_Conditions_LessThanCondition_String_Equal_Test() { var condition = new LessThanCondition <TestClass, string>(p => p.Name, "cde"); Assert.IsFalse(condition.IsValid(new TestClass { Name = "cde" })); }
public void RubberStamp_Conditions_LessThanCondition_Int_Lower_Invalid_Test() { var condition = new LessThanCondition <TestClass, int>(p => p.Index, 3); Assert.IsTrue(condition.IsValid(new TestClass { Index = 2 })); }
public void RubberStamp_Conditions_LessThanCondition_Int_Greater_Test() { var condition = new LessThanCondition <TestClass, int>(p => p.Index, 3); Assert.IsFalse(condition.IsValid(new TestClass { Index = 4 })); }
public void RubberStamp_Conditions_LessThanCondition_String_Lower_Invalid_Test() { var condition = new LessThanCondition <TestClass, string>(p => p.Name, "cde"); Assert.IsTrue(condition.IsValid(new TestClass { Name = "cce" })); }
public static void NumericConditions <TProperty>(IDictionary <string, IValueTypeCondition <TProperty> > conditions) where TProperty : struct, IComparable, IComparable <TProperty>, IEquatable <TProperty> { conditions["none"] = new ValueTypeNoneCondition <TProperty>("None"); conditions["equal"] = new ValueTypeEqualCondition <TProperty>("Equal"); conditions["notequal"] = new ValueTypeNotEqualCondition <TProperty>("NotEqual"); conditions["between"] = new BetweenCondition <TProperty>("Between"); conditions["lessthan"] = new LessThanCondition <TProperty>("LessThan"); conditions["greaterthan"] = new GreaterThanCondition <TProperty>("GreaterThan"); conditions["lessthanorequal"] = new LessThanOrEqualCondition <TProperty>("LessThanOrEqual"); conditions["greaterthanorequal"] = new GreaterThanOrEqualCondition <TProperty>("GreaterThanOrEqual"); conditions["isnull"] = new ValueTypeIsNullCondition <TProperty>("IsNull"); conditions["isnotnull"] = new ValueTypeIsNotNullCondition <TProperty>("IsNotNull"); }
public void Test___Method_Check___Equals___Generic() { var testee = new LessThanCondition <int>() { Value1 = new AnyVariable <int>() { Value = 20 }, Value2 = new AnyVariable <int>() { Value = 20 } }; Assert.IsFalse(testee.Check()); }
public void Test___Method_Check___Less() { var testee = new LessThanCondition() { Value1 = new AnyVariable() { Value = 10 }, Value2 = new AnyVariable() { Value = 20 } }; Assert.IsTrue(testee.Check()); }
public void LessThanCondition() { var lessThanCondition = new LessThanCondition <decimal>(); var expr1 = lessThanCondition.For <TestSource>(x => x.Price); Assert.IsNull(expr1); lessThanCondition.Value = new FilterValue <decimal?> { LeftValue = 1M }; var expr2 = lessThanCondition.For <TestSource>(x => x.Price); Assert.IsFalse(expr2.Compile()(new TestSource { Price = 2 })); lessThanCondition.Value = new FilterValue <decimal?> { LeftValue = 5M }; var expr3 = lessThanCondition.For <TestSource>(x => x.Price); Assert.IsFalse(expr3.Compile()(new TestSource { Price = 5 })); lessThanCondition.Value = new FilterValue <decimal?> { LeftValue = 5M }; var expr4 = lessThanCondition.For <TestSource>(x => x.Price); Assert.IsTrue(expr4.Compile()(new TestSource { Price = 4 })); }
/// <summary> /// 小于条件 /// </summary> /// <param name="column">查询字段对象</param> /// <param name="paramVal">比较的值</param> /// <returns>返回小于条件对象</returns> public static LessThanCondition LessThan(SearchColumn column, object paramVal) { LessThanCondition cond = new LessThanCondition(column, paramVal); return cond; }
/// <summary> /// 小于条件 /// </summary> /// <param name="paramVal">比较的值</param> /// <returns>返回小于条件对象</returns> public static LessThanCondition LessThan(object paramVal) { LessThanCondition cond = new LessThanCondition(paramVal); return cond; }
/// <summary> /// 小于条件 /// </summary> /// <param name="relation">条件关系</param> /// <param name="column">查询字段对象</param> /// <param name="paramVal">比较的值</param> /// <returns>返回小于条件对象</returns> public static LessThanCondition LessThan(ConditionRelation relation, SearchColumn column, object paramVal) { LessThanCondition cond = new LessThanCondition(relation, column, paramVal); return(cond); }
public void RubberStamp_Conditions_LessThanCondition_Int_Message_Test() { var condition = new LessThanCondition <TestClass, int>(p => p.Index, 3); Assert.AreEqual("The Property Index has to be less than 3", condition.Message); }
/// <summary> /// 小于条件 /// </summary> /// <param name="relation">条件关系</param> /// <param name="column">查询字段对象</param> /// <param name="paramVal">比较的值</param> /// <returns>返回小于条件对象</returns> public static LessThanCondition LessThan(ConditionRelation relation, SearchColumn column, object paramVal) { LessThanCondition cond = new LessThanCondition(relation, column, paramVal); return cond; }
public void RubberStamp_Conditions_LessThanCondition_String_Message_Test() { var condition = new LessThanCondition <TestClass, string>(p => p.Name, "TEST"); Assert.AreEqual("The Property Name has to be less than TEST", condition.Message); }
/// <summary> /// 小于条件解析 /// </summary> /// <param name="condition">需要解析的条件对象</param> /// <returns>返回解析后的条件字符串</returns> protected override string LessThanParse(LessThanCondition condition) { StringBuilder conditionStr = new StringBuilder(" "); string queryColName = condition.SearchColumn.CurrentSearcher.TableName + "." + condition.SearchColumn.ColumnName; if (string.IsNullOrEmpty(condition.SearchColumn.ConditionString)) { conditionStr.Append(queryColName); } else { conditionStr.Append(condition.SearchColumn.ConditionString.Replace(SQLPlaceholder.ColName, queryColName)); } conditionStr.Append(" < "); if (condition.ParamValue is SearchColumn) { SearchColumn tmpColumn = (SearchColumn)condition.ParamValue; string valueColName = tmpColumn.CurrentSearcher.TableName + "." + tmpColumn.ColumnName; conditionStr.Append(valueColName); } else { string paramName = "P" + Guid.NewGuid().ToString().ToLower().Replace("-", ""); conditionStr.Append(":" + paramName); ParamCollection.Add(new DBParam(paramName, condition.ParamValue)); } conditionStr.Append(" "); return conditionStr.ToString(); }
/// <summary> /// 小于条件 /// </summary> /// <param name="paramVal">比较的值</param> /// <returns>返回小于条件对象</returns> public static LessThanCondition LessThan(object paramVal) { LessThanCondition cond = new LessThanCondition(paramVal); return(cond); }