public Url_CreateProject ( TableauServerSignIn, session ) : string | ||
session | TableauServerSignIn, | |
return | string |
private SiteProject _CreateProject(string projectName, string projectDescription) { //ref: http://onlinehelp.tableau.com/current/api/rest_api/en-us/help.htm#REST/rest_api_ref.htm#Create_Project%3FTocPath%3DAPI%2520Reference%7C_____12 var sb = new StringBuilder(); var xmlSettings = new XmlWriterSettings(); xmlSettings.OmitXmlDeclaration = true; var xmlWriter = XmlWriter.Create(sb, xmlSettings); xmlWriter.WriteStartElement("tsRequest"); xmlWriter.WriteStartElement("project"); xmlWriter.WriteAttributeString("name", projectName); xmlWriter.WriteAttributeString("description", projectDescription); xmlWriter.WriteEndElement(); //</project> xmlWriter.WriteEndElement(); // </tsRequest> xmlWriter.Close(); var xmlText = sb.ToString(); //Get the XML text out //Generate the MIME message //var mimeGenerator = new OnlineMimeXmlPayload(xmlText); //Create a web request var urlCreateProject = _onlineUrls.Url_CreateProject(OnlineSession); var webRequest = CreateLoggedInWebRequest(urlCreateProject, "POST"); SendRequestContents(webRequest, xmlText); //Get the response var response = GetWebResponseLogErrors(webRequest, "create project"); using (response) { var xmlDoc = GetWebResponseAsXml(response); //Get all the workbook nodes var nsManager = XmlHelper.CreateTableauXmlNamespaceManager("iwsOnline"); var xNodeProject = xmlDoc.SelectSingleNode("//iwsOnline:project", nsManager); try { return(new SiteProject(xNodeProject)); } catch (Exception parseXml) { StatusLog.AddError("Data source upload, error parsing XML resposne " + parseXml.Message + "\r\n" + xNodeProject.InnerXml); return(null); } } }