public UploadSignature getUploadSignature(UploadSignatureQuery query)
{
var url = apiUrl + "/api/v1.1/videos/signature";
var oAuth = new OAuthBase();
if (String.IsNullOrEmpty(query.path) && String.IsNullOrEmpty(query.url))
{
throw new ArgumentException("path or url must be provided");
}
if (!String.IsNullOrEmpty(query.path))
{
url += "?path=" + oAuth.UrlEncode(query.path);
if (!String.IsNullOrEmpty(query.filename))
{
url += "&filename=" + oAuth.UrlEncode(query.filename);
}
if (query.fileSize > 0)
{
url += "&filesize=" + query.fileSize;
}
}
else
{
url += "?url=" + oAuth.UrlEncode(query.url);
}
if (enableFlashSupport)
{
url += "&flash_request=true";
}
if (!String.IsNullOrEmpty(query.redirectUrl))
{
url += "&success_action_redirect=" + oAuth.UrlEncode(query.redirectUrl);
}
if (query.multipart)
{
url += "&multipart=true";
url += "&uploader=" + uploader;
}
UploadSignature signature = null;
var response = executeRequest(url);
signature = new UploadSignature(response);
return signature;
}