public void ValueTypeNotEqualCondition() { var equalCondition = new ValueTypeNotEqualCondition <int>(); var expr1 = equalCondition.For <TestSource>(x => x.Id); Assert.IsNull(expr1); equalCondition.Value = new FilterValue <int?> { LeftValue = 1 }; var expr2 = equalCondition.For <TestSource>(x => x.Id); Assert.IsFalse(expr2.Compile()(new TestSource { Id = 1 })); equalCondition.Value = new FilterValue <int?> { LeftValue = 2 }; var expr3 = equalCondition.For <TestSource>(x => x.Id); Assert.IsTrue(expr3.Compile()(new TestSource { Id = 1 })); }
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"); }