public static TableauServerUrls FromContentUrl(string userContentUrl, int pageSize)
{
userContentUrl = userContentUrl.Trim();
string foundProtocol = GetProtocolFromUrl(userContentUrl);
//Find where the server name ends
string urlAfterProtocol = userContentUrl.Substring(foundProtocol.Length);
var urlParts = urlAfterProtocol.Split('/');
string serverName = urlParts[0];
string siteUrlSegment;
ServerVersion serverVersion;
//Check for the site specifier. Infer the server version based on this URL
if(urlParts[1] == "t")
{
siteUrlSegment = urlParts[2];
serverVersion = ServerVersion.server8;
}
else if((urlParts[1] == "#") && (urlParts[2] == "site"))
{
siteUrlSegment = urlParts[3];
serverVersion = ServerVersion.server9;
}
else if (urlParts[1] == "#")
{
siteUrlSegment = ""; //Default site
serverVersion = ServerVersion.server9;
}
else
{
throw new Exception("Expected /t site splitter in url");
}
return new TableauServerUrls(foundProtocol, serverName, siteUrlSegment, pageSize, serverVersion);
}