Beispiel #1
0
            public async Task ReturnsItems()
            {
                await Db.Insert(new Person { Active = true, FirstName = "a", LastName = "a1", DateCreated = DateTime.UtcNow.AddDays(-10) });

                await Db.Insert(new Person { Active = false, FirstName = "b", LastName = "b1", DateCreated = DateTime.UtcNow.AddDays(-10) });

                await Db.Insert(new Person { Active = true, FirstName = "c", LastName = "c1", DateCreated = DateTime.UtcNow.AddDays(-3) });

                await Db.Insert(new Person { Active = false, FirstName = "d", LastName = "d1", DateCreated = DateTime.UtcNow.AddDays(-1) });

                await Db.Insert(new Animal { Name = "Foo" });

                await Db.Insert(new Animal { Name = "Bar" });

                await Db.Insert(new Animal { Name = "Baz" });

                GetMultiplePredicate predicate = new GetMultiplePredicate();

                predicate.Add <Person>(null);
                predicate.Add <Animal>(Predicates.Field <Animal>(a => a.Name, Operator.Like, "Ba%"));
                predicate.Add <Person>(Predicates.Field <Person>(a => a.LastName, Operator.Eq, "c1"));

                var result = Db.GetMultiple(predicate);
                var people = await result.Read <Person>();

                var animals = await result.Read <Animal>();

                var people2 = await result.Read <Person>();

                Assert.AreEqual(4, people.Count());
                Assert.AreEqual(2, animals.Count());
                Assert.AreEqual(1, people2.Count());
            }
Beispiel #2
0
        public async Task GetMultipleBySequence()
        {
            var dapper = new DapperImplementor(SqlHelper.GetSqlGenerator());

            using (var connection = await _fixture.Factory.ConnectionFactory.CreateAsync())
            {
                var predicate = new GetMultiplePredicate();
                predicate.Add <TestEntity>(new FieldPredicate <TestEntity>
                {
                    Operator     = Operator.Gt,
                    PropertyName = "Id",
                    Value        = 1
                });
                predicate.Add <TestEntity>(new FieldPredicate <TestEntity>
                {
                    Operator     = Operator.Eq,
                    PropertyName = "Name",
                    Value        = "2"
                });


                var result = dapper.GetMultiple(connection, predicate, null, null);

                var result1 = result.Read <TestEntity>();
                Assert.Equal(2, result1.Count());

                var result2 = result.Read <TestEntity>();
                Assert.Single(result2);
            }
        }
        public void Add()
        {
            var predicate = new GetMultiplePredicate();

            predicate.Add <TestEntity>(new FieldPredicate <TestEntity>());
            predicate.Add <TestEntity>(12);
            Assert.Equal(2, predicate.Items.Count());
        }
Beispiel #4
0
            public void ReturnsItems()
            {
                Db.Insert(new Person {
                    Active = true, FirstName = "a", LastName = "a1", DateCreated = DateTime.UtcNow.AddDays(-10)
                });
                Db.Insert(new Person {
                    Active = false, FirstName = "b", LastName = "b1", DateCreated = DateTime.UtcNow.AddDays(-10)
                });
                Db.Insert(new Person {
                    Active = true, FirstName = "c", LastName = "c1", DateCreated = DateTime.UtcNow.AddDays(-3)
                });
                Db.Insert(new Person {
                    Active = false, FirstName = "d", LastName = "d1", DateCreated = DateTime.UtcNow.AddDays(-1)
                });

                Db.Insert(new Animal {
                    Name = "Foo"
                });
                Db.Insert(new Animal {
                    Name = "Bar"
                });
                Db.Insert(new Animal {
                    Name = "Baz"
                });

                var predicate = new GetMultiplePredicate();

                predicate.Add <Person>(null);
                predicate.Add <Animal>(Predicates.Field <Animal>(a => a.Name, Operator.Like, "Ba%"));
                predicate.Add <Person>(Predicates.Field <Person>(a => a.LastName, Operator.Eq, "c1"));

                var result  = Db.GetMultiple(predicate).Result;
                var people  = result.Read <Person>().ToList();
                var animals = result.Read <Animal>().ToList();
                var people2 = result.Read <Person>().ToList();

                people.Should().HaveCount(4);
                animals.Should().HaveCount(2);
                people2.Should().HaveCount(1);
                Dispose();
            }
		public Order GetById(int orderId)
		{
			Order order = null;

			var gmp = new GetMultiplePredicate();
			gmp.Add<Order>(Predicates.Field<Order>(x => x.OrderID, Operator.Eq, orderId));
			gmp.Add<OrderLine>(Predicates.Field<OrderLine>(x => x.OrderID, Operator.Eq, orderId));

			using (var conn = _connectionFactory())
			{
				var reader = conn.GetMultiple(gmp);

				order = reader.Read<Order>().SingleOrDefault();

				if (order != null)
				{
					//CoreObjectShim.SetReadOnlyProperty<Order>(x => x.Lines, reader.Read<OrderLine>().ToList());
					var setter = MemberShim.GetReadOnlySetter<Order, List<OrderLine>>(x => x.Lines);
					setter(order, reader.Read<OrderLine>().ToList());
				}
			}

			return order;
		}
            public void ReturnsItems()
            {
                Db.Insert(new Person { Active = true, FirstName = "a", LastName = "a1", DateCreated = DateTime.UtcNow.AddDays(-10) });
                Db.Insert(new Person { Active = false, FirstName = "b", LastName = "b1", DateCreated = DateTime.UtcNow.AddDays(-10) });
                Db.Insert(new Person { Active = true, FirstName = "c", LastName = "c1", DateCreated = DateTime.UtcNow.AddDays(-3) });
                Db.Insert(new Person { Active = false, FirstName = "d", LastName = "d1", DateCreated = DateTime.UtcNow.AddDays(-1) });

                Db.Insert(new Animal { Name = "Foo" });
                Db.Insert(new Animal { Name = "Bar" });
                Db.Insert(new Animal { Name = "Baz" });

                GetMultiplePredicate predicate = new GetMultiplePredicate();
                predicate.Add<Person>(null);
                predicate.Add<Animal>(Predicates.Field<Animal>(a => a.Name, Operator.Like, "Ba%"));
                predicate.Add<Person>(Predicates.Field<Person>(a => a.LastName, Operator.Eq, "c1"));

                var result = Db.GetMultiple(predicate);
                var people = result.Read<Person>().ToList();
                var animals = result.Read<Animal>().ToList();
                var people2 = result.Read<Person>().ToList();

                Assert.AreEqual(4, people.Count);
                Assert.AreEqual(2, animals.Count);
                Assert.AreEqual(1, people2.Count);
            }