in webservice/MCPermissions.cs [87:162]
public XmlNode GetListItems(string listName, string startRow, string rowLimit)
{
XmlNode retVal = null;
try
{
uint startRowParam = Convert.ToUInt32(startRow);
uint rowLimitParam = Convert.ToUInt32(rowLimit);
using (SPWeb oWebsiteRoot = SPContext.Current.Web)
{
if (oWebsiteRoot != null)
{
oWebsiteRoot.Lists.IncludeRootFolder = true;
SPList oList = oWebsiteRoot.Lists[new Guid(listName)];
SPQuery listQuery = new SPQuery();
listQuery.Query = "<OrderBy Override=\"TRUE\"><FieldRef Name=\"FileRef\" /></OrderBy>";
listQuery.QueryThrottleMode = SPQueryThrottleOption.Override;
listQuery.ViewAttributes = "Scope=\"Recursive\"";
listQuery.ViewFields = "<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;
SPListItemCollection collListItems = oList.GetItems(listQuery);
foreach (SPListItem oListItem in collListItems)
{
if (counter >= startRowParam && counter < startRowParam + rowLimitParam)
{
XmlNode resultNode = doc.CreateElement("GetListItemsResult");
XmlAttribute idAttribute = doc.CreateAttribute("FileRef");
idAttribute.Value = oListItem.Url;
resultNode.Attributes.Append(idAttribute);
XmlAttribute urlAttribute = doc.CreateAttribute("ListItemURL");
//urlAttribute.Value = oListItem.ParentList.DefaultViewUrl;
urlAttribute.Value = string.Format("{0}?ID={1}", oListItem.ParentList.Forms[PAGETYPE.PAGE_DISPLAYFORM].ServerRelativeUrl, oListItem.ID);
resultNode.Attributes.Append(urlAttribute);
getListItemsNode.AppendChild(resultNode);
}
counter++;
}
listQuery.ListItemCollectionPosition = collListItems.ListItemCollectionPosition;
} while (listQuery.ListItemCollectionPosition != null);
retVal.AppendChild(getListItemsNode);
}
}
}
catch (SoapException soapEx)
{
throw soapEx;
}
catch (Exception ex)
{
SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("MCPermissions.asmx", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, "Error: "+ex.Message, ex.StackTrace);
throw RaiseException(ex.Message, "1010", ex.Source);
}
return retVal;
}