Fix pagination issue
git-svn-id: https://svn.apache.org/repos/asf/manifoldcf/integration/sharepoint-2010/trunk@1381693 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webservice/MCPermissions.cs b/webservice/MCPermissions.cs
index e63e7b7..1487b2d 100644
--- a/webservice/MCPermissions.cs
+++ b/webservice/MCPermissions.cs
@@ -110,30 +110,25 @@
listQuery.ViewAttributes = "Scope=\"Recursive\"";
listQuery.ViewFields = string.Concat(
"<FieldRef Name='FileRef' />");
-
-
listQuery.RowLimit = 1000;
+ XmlDocument doc = new XmlDocument();
+ retVal = doc.CreateElement("GetListItems",
+ "http://schemas.microsoft.com/sharepoint/soap/directory/");
+ XmlNode getListItemsNode = doc.CreateElement("GetListItemsResponse");
+
uint counter = 0;
do
{
if (counter >= startRowParam + rowLimitParam)
break;
- // Will this work? Or will it reset something unexpected?
- if (startRowParam + rowLimitParam - counter < 1000)
- listQuery.RowLimit = startRowParam + rowLimitParam - counter;
-
SPListItemCollection collListItems = oList.GetItems(listQuery);
- XmlDocument doc = new XmlDocument();
- retVal = doc.CreateElement("GetListItems",
- "http://schemas.microsoft.com/sharepoint/soap/directory/");
- XmlNode getListItemsNode = doc.CreateElement("GetListItemsResponse");
foreach (SPListItem oListItem in collListItems)
{
- if (counter >= startRowParam)
+ if (counter >= startRowParam && counter < startRowParam + rowLimitParam)
{
XmlNode resultNode = doc.CreateElement("GetListItemsResult");
XmlAttribute idAttribute = doc.CreateAttribute("FileRef");
@@ -144,8 +139,9 @@
counter++;
}
- retVal.AppendChild(getListItemsNode);
} while (listQuery.ListItemCollectionPosition != null);
+
+ retVal.AppendChild(getListItemsNode);
}
}