/// <summary>
/// Get a page's worth of Workbook listings
/// </summary>
/// <param name="onlineWorkbooks"></param>
/// <param name="pageToRequest">Page # we are requesting (1 based)</param>
/// <param name="totalNumberPages">Total # of pages of data that Server can return us</param>
private void ExecuteRequest_ForPage(List <SiteWorkbook> onlineWorkbooks, int pageToRequest, out int totalNumberPages)
{
int pageSize = _onlineUrls.PageSize;
//Create a web request, in including the users logged-in auth information in the request headers
var urlQuery = _onlineUrls.Url_WorkbooksListForUser(_onlineSession, _userIdForWorkbookQuery, pageSize, pageToRequest, SortDirectiveForContentQuery());
_onlineSession.StatusLog.AddStatus("Web request: " + urlQuery, -10);
var xmlDoc = ResourceSafe_PerformWebRequest_GetXmlDocument(urlQuery, "get workbooks list");
//var webRequest = CreateLoggedInWebRequest(urlQuery);
//webRequest.Method = "GET";
//var response = GetWebReponseLogErrors(webRequest, "get workbooks list");
//var xmlDoc = GetWebResponseAsXml(response);
//Get all the workbook nodes
var nsManager = XmlHelper.CreateTableauXmlNamespaceManager("iwsOnline");
var workbooks = xmlDoc.SelectNodes("//iwsOnline:workbook", nsManager);
//Get information for each of the data sources
foreach (XmlNode itemXml in workbooks)
{
try
{
var ds = new SiteWorkbook(itemXml);
onlineWorkbooks.Add(ds);
}
catch
{
AppDiagnostics.Assert(false, "Workbook parse error");
_onlineSession.StatusLog.AddError("Error parsing workbook: " + itemXml.InnerXml);
}
} //end: foreach
//-------------------------------------------------------------------
//Get the updated page-count
//-------------------------------------------------------------------
totalNumberPages = DownloadPaginationHelper.GetNumberOfPagesFromPagination(
xmlDoc.SelectSingleNode("//iwsOnline:pagination", nsManager),
pageSize);
}