예제 #1
0
        public void ReferenceTypeNotEqualCondition()
        {
            var referenceTypeNotEqualCondition = new ReferenceTypeNotEqualCondition <string>();

            var expr1 = referenceTypeNotEqualCondition.For <TestSource>(x => x.Name);

            Assert.IsNull(expr1);

            referenceTypeNotEqualCondition.Value = new FilterValue <string> {
                LeftValue = "345"
            };
            var expr2 = referenceTypeNotEqualCondition.For <TestSource>(x => x.Name);

            Assert.IsFalse(expr2.Compile()(new TestSource {
                Name = "345"
            }));

            referenceTypeNotEqualCondition.Value = new FilterValue <string> {
                LeftValue = "234"
            };
            var expr3 = referenceTypeNotEqualCondition.For <TestSource>(x => x.Name);

            Assert.IsTrue(expr3.Compile()(new TestSource {
                Name = "4"
            }));
        }
예제 #2
0
 public static void StringConditions(IDictionary <string, IReferenceTypeCondition <string> > conditions)
 {
     conditions["none"]             = new ReferenceTypeNoneCondition <string>("None");
     conditions["equal"]            = new ReferenceTypeEqualCondition <string>("Equal");
     conditions["notequal"]         = new ReferenceTypeNotEqualCondition <string>("NotEqual");
     conditions["contains"]         = new ContainsCondition("Contains");
     conditions["startswith"]       = new StartsWithCondition("StartsWith");
     conditions["endtswith"]        = new EndsWithCondition("EndsWith");
     conditions["isnullorempty"]    = new IsNullOrEmptyCondition("IsNullOrEmpty");
     conditions["isnotnullorempty"] = new IsNotNullOrEmptyCondition("IsNotNullOrEmpty");
 }
예제 #3
0
        public void ReferenceTypeFilterSetDefaultValue_Lazy()
        {
            var filter = new ReferenceTypeFilter <TestSource, string>();

            filter.For(x => x.Name);
            filter.Conditions(condition =>
            {
                condition["equal"]    = new ReferenceTypeEqualCondition <string>();
                condition["notequal"] = new ReferenceTypeNotEqualCondition <string>();
            });


            var expr1 = filter.BuildExpression <TestSource>();

            Assert.IsNull(expr1);

            filter.SetDefaultValue(() => new FilterValue <string>
            {
                LeftValue    = "10",
                ConditionKey = "equal"
            });

            var expr2 = filter.BuildExpression <TestSource>();

            Assert.IsNotNull(expr2);

            Assert.IsTrue(expr2.Compile()(new TestSource {
                Name = "10"
            }));

            Assert.IsFalse(expr2.Compile()(new TestSource {
                Name = "12"
            }));

            filter.Init(new FilterValue <string>
            {
                ConditionKey = "notequal",
                LeftValue    = "10"
            });

            var expr3 = filter.BuildExpression <TestSource>();

            Assert.IsNotNull(expr3);

            Assert.IsTrue(expr3.Compile()(new TestSource {
                Name = "12"
            }));
            Assert.IsFalse(expr3.Compile()(new TestSource {
                Name = "10"
            }));
        }