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