protected override void OnLoad(EventArgs e)
{
// Get the main request informaiton.
string sCommand = Request.QueryString["Command"] ;
if ( sCommand == null ) return ;
string sResourceType = Request.QueryString["Type"] ;
if ( sResourceType == null ) return ;
string sCurrentFolder = Request.QueryString["CurrentFolder"] ;
if ( sCurrentFolder == null ) return ;
// Check the current folder syntax (must begin and start with a slash).
if ( ! sCurrentFolder.EndsWith( "/" ) )
sCurrentFolder += "/" ;
if ( ! sCurrentFolder.StartsWith( "/" ) )
sCurrentFolder = "/" + sCurrentFolder ;
// File Upload doesn't have to return XML, so it must be intercepted before anything.
if ( sCommand == "FileUpload" )
{
this.FileUpload( sResourceType, sCurrentFolder ) ;
return ;
}
// Cleans the response buffer.
Response.ClearHeaders() ;
Response.Clear() ;
// Prevent the browser from caching the result.
Response.CacheControl = "no-cache" ;
// Set the response format.
Response.ContentEncoding = UTF8Encoding.UTF8 ;
Response.ContentType = "text/xml" ;
XmlDocument oXML = new XmlDocument() ;
XmlNode oConnectorNode = CreateBaseXml( oXML, sCommand, sResourceType, sCurrentFolder ) ;
if (CreateImageFolder(oConnectorNode))
{
if (sResourceType.Equals("Image"))
{
// Execute the required command.
switch (sCommand)
{
case "GetFolders":
this.GetFolders(oConnectorNode, sCurrentFolder);
break;
case "GetFoldersAndFiles":
this.GetFolders(oConnectorNode, sCurrentFolder);
this.GetFiles(oConnectorNode, sResourceType, sCurrentFolder);
break;
case "CreateFolder":
this.CreateFolder(oConnectorNode, sResourceType, sCurrentFolder);
break;
}
}
else if (sResourceType.Equals("Posts"))
{
// Execute the required command.
switch (sCommand)
{
case "GetFolders":
GetCategories(oConnectorNode, sCurrentFolder);
break;
case "GetFoldersAndFiles":
GetCategories(oConnectorNode, sCurrentFolder);
GetPosts(oConnectorNode, sCurrentFolder);
break;
case "CreateFolder":
this.CreateFolder(oConnectorNode, sResourceType, sCurrentFolder);
break;
}
}
else if (sResourceType.Equals("File"))
{
// Execute the required command.
switch (sCommand)
{
case "GetFolders":
this.GetFolders(oConnectorNode, sCurrentFolder);
break;
case "GetFoldersAndFiles":
this.GetFolders(oConnectorNode, sCurrentFolder);
this.GetFiles(oConnectorNode, sResourceType, sCurrentFolder);
break;
case "CreateFolder":
this.CreateFolder(oConnectorNode, sResourceType, sCurrentFolder);
break;
}
}
}
// Output the resulting XML.
Response.Write( oXML.OuterXml ) ;
Response.End() ;
base.OnLoad (e);
}