예제 #1
0
        public void JoinTestMethod1()
        {
            var joinQuery = from cust in this.baseCustomerQuery
                            join ctr in this.baseContractQuery on cust.Id equals ctr.CustomerId into joined select new Customer()
            {
                Id        = cust.Id,
                Vorname   = cust.Vorname,
                Nachname  = cust.Nachname,
                Age       = cust.Age,
                Contracts = joined
            };
            //var r = joinQuery.ToList();
            var query      = new EnumerableSource <Customer>().Where(x => x.Contracts.Any(c => c.Descriptions.Contains("test"))).OrderByDescending(x => x.Nachname);
            var node       = query.Serialize();
            var expression = new QNodeConverter().Convert(joinQuery, node);
            var target     = joinQuery.Execute(expression) as List <Customer>;
            var source     = this.customers.AsQueryable().Execute(expression) as List <Customer>;

            Assert.AreEqual(target.Count, source.Count);
            for (int i = 0; i < target.Count; i++)
            {
                Assert.AreEqual(target[i].Vorname, source[i].Vorname);
                Assert.AreEqual(target[i].Nachname, source[i].Nachname);
            }
        }
예제 #2
0
        public void CountMethod1()
        {
            var query = new EnumerableSource<PersonDto>().Where(x => x.Mitarbeiters.Count > 0);
            var node = query.Serialize();
            var converter = new QNodeConverter();
            var expression = converter.Convert(this.persons.AsQueryable(),node);
            var result = this.persons.AsQueryable().Execute(expression);

        }
예제 #3
0
        public void SkipMethod1()
        {
            var query = new EnumerableSource<PersonDto>().Where(x => x.Vorname.EndsWith("a")).OrderBy(x => x.Vorname).Skip(1); 
            var node = query.Serialize();
            var converter = new QNodeConverter();
            var expression = converter.Convert(this.persons.AsQueryable(),node);
            var result = this.persons.AsQueryable().Execute(expression);

        }
예제 #4
0
        public void TestMethod1()
        {
            var query = new EnumerableSource<PersonDto>().Where(x => x.Vorname.Contains("a"));
            var node = query.Serialize();
            var converter = new QNodeConverter();
            var expression = converter.Convert(this.persons.AsQueryable(),node);
            var result = this.persons.AsQueryable().Execute(expression);

        }
예제 #5
0
        public void QueryStringMethod3()
        {
            var source = new DynamicSource().QueryString("a", new List<string>() { "Vorname" , "Nachname" , "Leiter.Vorname" });
            var node = source.Query;
            var converter = new QNodeConverter();
            var expression = converter.Convert(this.persons.AsQueryable(),node);
            var result = this.persons.AsQueryable().Execute(expression);

        }
예제 #6
0
        public void QueryStringMethod2()
        {
            var query = new EnumerableSource<PersonDto>().QueryString("a", dto => new object[] { dto.Vorname, dto.Nachname, dto.Leiter.Vorname });
            var node = query.Serialize();
            var converter = new QNodeConverter();
            var expression = converter.Convert(this.persons.AsQueryable(), node);
            var result = this.persons.AsQueryable().Execute(expression);

        }
예제 #7
0
        public void InTestMethod()
        {
            var list = new List<string>() { "Hans" , "Dirk" };
            var query = new EnumerableSource<PersonDto>().Where(x => list.Contains(x.Vorname));
            var node = query.Serialize();
            var converter = new QNodeConverter();
            var expression = converter.Convert(this.persons.AsQueryable(),node);
            var result = this.persons.AsQueryable().Execute(expression);

        }
예제 #8
0
        public void ProjectionTestMethod1()
        {
            var query = new EnumerableSource <Customer>().Select(x => new { name = x.Vorname });
            var node  = query.Serialize();

            var sourceExpression = new QNodeConverter().Convert(this.baseCustomerQuery, node);
            var source           = this.baseCustomerQuery.Execute(sourceExpression);

            var targetExpression = new QNodeConverter().Convert(this.customers.AsQueryable(), node);
            var target           = this.customers.AsQueryable().Execute(targetExpression);

            //Assert.AreEqual(target.Count, source.Count);
            //for (int i = 0; i < target.Count; i++)
            //{
            //    Assert.AreEqual(target[i].Vorname, source[i].Vorname);
            //    Assert.AreEqual(target[i].Nachname, source[i].Nachname);
            //}
        }
예제 #9
0
        public void ProjectionTestMethod1()
        {
            var v     = this.baseCustomerQuery.SelectMany(x => x.Contracts).Where(c => c.Descriptions.ToLower().Contains("test")).ToList();
            var query = new EnumerableSource <Customer>().Select(x => new  { Vorname = x.Vorname, Contracts = x.Contracts });
            var node  = query.Serialize();

            var sourceExpression = new QNodeConverter().Convert(this.baseCustomerQuery, node);
            var source           = this.baseCustomerQuery.Execute(sourceExpression);

            var targetExpression = new QNodeConverter().Convert(this.customers.AsQueryable(), node);
            var target           = this.customers.AsQueryable().Execute(targetExpression);

            //Assert.AreEqual(target.Count, source.Count);
            //for (int i = 0; i < target.Count; i++)
            //{
            //    Assert.AreEqual(target[i].Vorname, source[i].Vorname);
            //    Assert.AreEqual(target[i].Nachname, source[i].Nachname);
            //}
        }
예제 #10
0
        public void WhereTestMethod1()
        {
            var query = new EnumerableSource <Customer>().Where(x => x.Vorname.ToLower().Contains("d"));
            var node  = query.Serialize();

            var sourceExpression = new QNodeConverter().Convert(this.baseCustomerQuery, node);
            var source           = this.baseCustomerQuery.Execute(sourceExpression) as List <Customer>;

            var targetExpression = new QNodeConverter(new QNodeConverterSettings()
            {
                QueryStringIgnoreCase = false
            }).Convert(this.customers.AsQueryable(), node);
            var target = this.customers.AsQueryable().Execute(targetExpression) as List <Customer>;

            Assert.AreEqual(target.Count, source.Count);
            for (int i = 0; i < target.Count; i++)
            {
                Assert.AreEqual(target[i].Vorname, source[i].Vorname);
                Assert.AreEqual(target[i].Nachname, source[i].Nachname);
            }
        }