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

                         }

                     }