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 void ValueTypeIsNotInCondition() { var isNotInCondition = new ValueTypeIsNotInCondition <int>(); var expr1 = isNotInCondition.For <TestSource>(x => x.Id); Assert.IsNull(expr1); isNotInCondition.Value = new FilterValue <int?> { Values = new List <int?> { 1, 2, 3 } }; var expr2 = isNotInCondition.For <TestSource>(x => x.Id); var expr2Func = expr2.Compile(); Assert.IsFalse(expr2Func(new TestSource { Id = 1 })); Assert.IsTrue(expr2Func(new TestSource { Id = 100 })); isNotInCondition.Value = new FilterValue <int?> { Values = new List <int?> { 1, 2, 3, null } }; var expr3 = isNotInCondition.For <TestSource>(x => x.Id); Assert.IsNotNull(expr3); }