コード例 #1
0
        public IList <EmployeeSimple> PaginateWithSkipPast(string lastName, EmployeeSimple?skipPast, int take)
        {
            var orderBy = OrderField.Parse(new
            {
                FirstName   = Order.Ascending,
                EmployeeKey = Order.Ascending
            });
            var page = 0;

            if (skipPast != null)
            {
                var lastNameField  = new QueryField("LastName", lastName);
                var firstNameField = new QueryField("FirstName", Operation.GreaterThan, skipPast.FirstName);
                var firstNameAndEmployeeKeyFields = new QueryGroup(new[]
                {
                    new QueryField("FirstName", skipPast.FirstName),
                    new QueryField("EmployeeKey", Operation.GreaterThan, skipPast.EmployeeKey)
                });
                var group = new QueryGroup(lastNameField,
                                           new QueryGroup(firstNameField.AsEnumerable(),
                                                          firstNameAndEmployeeKeyFields.AsEnumerable(), Conjunction.Or));
                return(BatchQuery(page,
                                  take,
                                  orderBy,
                                  group).AsList());
            }
            else
            {
                return(BatchQuery(page,
                                  take,
                                  orderBy,
                                  e => e.LastName == lastName).AsList());
            }
        }
コード例 #2
0
        public void TestQueryGroupConstructorForQueryFields()
        {
            // Setup
            var queryField = new QueryField("Field1", Operation.Equal, 1);

            // Act
            var queryGroup = new QueryGroup(queryField.AsEnumerable());

            // Assert
            Assert.AreEqual(1, queryGroup.QueryFields.Count());
        }
コード例 #3
0
        public void TestQueryGroupConstructorForQueryFieldsAndQueryGroup()
        {
            // Setup
            var queryFieldA = new QueryField("Field1", Operation.Equal, 1);
            var queryFieldB = new QueryField("Field2", Operation.Equal, 2);

            // Act
            var queryGroup = new QueryGroup(queryFieldA.AsEnumerable(), new QueryGroup(queryFieldB));

            // Assert
            Assert.AreEqual(1, queryGroup.QueryFields.Count());
            Assert.AreEqual(1, queryGroup.QueryGroups.Count());
        }