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()); } }
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()); }
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()); }