/// <summary> /// Downloads a single request for 1 workbook /// </summary> /// <param name="workbookId"></param> /// <returns></returns> public SiteWorkbook ExecuteRequest_SingleWorkbook(string workbookId) { //Sanity check if (string.IsNullOrWhiteSpace(workbookId)) { _onlineSession.StatusLog.AddError("Workbook ID required to query workbooks"); } //Create a web request, in including the users logged-in auth information in the request headers var urlQuery = _onlineUrls.Url_WorkbookInfo(_onlineSession, workbookId); _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 wb = new SiteWorkbook(itemXml); //There is ONLY one workbook, so return it return(wb); } catch { AppDiagnostics.Assert(false, "Workbook parse error"); _onlineSession.StatusLog.AddError("Error parsing workbook: " + itemXml.InnerXml); return(null); } } //end: foreach return(null); }