public static void MultipleValueConditions <TProperty>(IDictionary <string, IValueTypeCondition <TProperty> > conditions) where TProperty : struct, IComparable, IComparable <TProperty>, IEquatable <TProperty> { conditions["none"] = new ValueTypeNoneCondition <TProperty>("None"); conditions["isin"] = new ValueTypeIsInCondition <TProperty>("IsIn"); conditions["inotsin"] = new ValueTypeIsNotInCondition <TProperty>("IsNotIn"); conditions["isnull"] = new ValueTypeIsNullCondition <TProperty>("IsNull"); conditions["isnotnull"] = new ValueTypeIsNotNullCondition <TProperty>("IsNotNull"); }
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 ValueTypeIsNotNullCondition() { var isNotNullCondition = new ValueTypeIsNotNullCondition <int> { Value = new FilterValue <int?> { LeftValue = 1 } }; var expr1 = isNotNullCondition.For <TestSource>(x => x.NullableField); Assert.IsTrue(expr1.Compile()(new TestSource { NullableField = 1 })); Assert.IsFalse(expr1.Compile()(new TestSource { NullableField = null })); }