Ejemplo n.º 1
0
        /// <summary>
        /// Creates a Metaweblog Media object from the XML struct
        /// </summary>
        /// <param name="node">
        /// XML contains a Metaweblog MediaObject Struct
        /// </param>
        /// <returns>
        /// Metaweblog MediaObject Struct Obejct
        /// </returns>
        private static MWAMediaObject GetMediaObject(XmlNode node)
        {
            var name = node.SelectSingleNode("value/struct/member[name='name']");
            var type = node.SelectSingleNode("value/struct/member[name='type']");
            var bits = node.SelectSingleNode("value/struct/member[name='bits']");
            var temp = new MWAMediaObject
            {
                name = name == null ? string.Empty : name.LastChild.InnerText,
                type = type == null ? "notsent" : type.LastChild.InnerText,
                bits = Convert.FromBase64String(bits == null ? string.Empty : bits.LastChild.InnerText)
            };

            return(temp);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a Metaweblog Media object from the XML struct
        /// </summary>
        /// <param name="node">XML contains a Metaweblog MediaObject Struct</param>
        /// <returns>Metaweblog MediaObject Struct Obejct</returns>
        private MWAMediaObject GetMediaObject(XmlNode node)
        {
            MWAMediaObject temp = new MWAMediaObject();

            temp.name = node.SelectSingleNode("value/struct/member[name='name']").LastChild.InnerText;
            if (node.SelectSingleNode("value/struct/member[name='type']") == null)
            {
                temp.type = "notsent";
            }
            else
            {
                temp.type = node.SelectSingleNode("value/struct/member[name='type']").LastChild.InnerText;
            }
            temp.bits = System.Convert.FromBase64String(node.SelectSingleNode("value/struct/member[name='bits']").LastChild.InnerText);

            return(temp);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// metaWeblog.newMediaObject method
        /// </summary>
        /// <param name="blogId">
        /// always 1000 in BlogEngine since it is a singlar blog instance
        /// </param>
        /// <param name="userName">
        /// login username
        /// </param>
        /// <param name="password">
        /// login password
        /// </param>
        /// <param name="mediaObject">
        /// struct with media details
        /// </param>
        /// <param name="request">
        /// The HTTP request.
        /// </param>
        /// <returns>
        /// struct with url to media
        /// </returns>
        internal MWAMediaInfo NewMediaObject(
            string blogId, string userName, string password, MWAMediaObject mediaObject, HttpContext request)
        {
            if (!Security.IsAuthorizedTo(AuthorizationCheck.HasAny, new Rights[]
                {
                    Rights.CreateNewPosts,
                    Rights.CreateNewPages,
                    Rights.EditOwnPosts,
                    Rights.EditOwnPages,
                    Rights.EditOtherUsersPosts
                }))
            {
                throw new MetaWeblogException("11", "User authentication failed");
            }

            var mediaInfo = new MWAMediaInfo();

            var rootPath = string.Format("{0}files/", Blog.CurrentInstance.StorageLocation);
            var serverPath = request.Server.MapPath(rootPath);
            var saveFolder = serverPath;
            string mediaObjectName = mediaObject.name.Replace(" ", "_");
            mediaObjectName = mediaObjectName.Replace(":", "-");
            var fileName = mediaObjectName;
            var mediaFolder = string.Empty;

            // Check/Create Folders & Fix fileName
            if (mediaObjectName.LastIndexOf('/') > -1)
            {
                mediaFolder = mediaObjectName.Substring(0, mediaObjectName.LastIndexOf('/'));
                saveFolder += mediaFolder;
                mediaFolder += "/";
                saveFolder = saveFolder.Replace('/', Path.DirectorySeparatorChar);
                fileName = mediaObjectName.Substring(mediaObjectName.LastIndexOf('/') + 1);
            }
            else
            {
                if (saveFolder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    saveFolder = saveFolder.Substring(0, saveFolder.Length - 1);
                }
            }

            if (!Directory.Exists(saveFolder))
            {
                Directory.CreateDirectory(saveFolder);
            }

            saveFolder += Path.DirectorySeparatorChar;

            if (File.Exists(saveFolder + fileName))
            {
                // Find unique fileName
                for (var count = 1; count < 30000; count++)
                {
                    var tempFileName = fileName.Insert(fileName.LastIndexOf('.'), string.Format("_{0}", count));
                    if (File.Exists(saveFolder + tempFileName))
                    {
                        continue;
                    }

                    fileName = tempFileName;
                    break;
                }
            }

            // Save File
            using (var fs = new FileStream(saveFolder + fileName, FileMode.Create))
            using (var bw = new BinaryWriter(fs))
            {
                bw.Write(mediaObject.bits);
                bw.Close();
            }

            // Set Url
            var rootUrl = Utils.AbsoluteWebRoot.ToString();
            if (BlogSettings.Instance.RequireSslMetaWeblogApi)
            {
                rootUrl = rootUrl.Replace("https://", "http://");
            }

            var mediaType = mediaObject.type;
            if (mediaType.IndexOf('/') > -1)
            {
                mediaType = mediaType.Substring(0, mediaType.IndexOf('/'));
            }

            switch (mediaType)
            {
                case "image":
                case "notsent":
                    // If there wasn't a type, let's pretend it is an image.  (Thanks Zoundry.  This is for you.)
                    rootUrl += "image.axd?picture=";
                    break;
                default:
                    rootUrl += "file.axd?file=";
                    break;
            }

            mediaInfo.url = rootUrl + mediaFolder + fileName;
            return mediaInfo;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// metaWeblog.newMediaObject method
        /// </summary>
        /// <param name="blogId">
        /// always 1000 in BlogEngine since it is a singlar blog instance
        /// </param>
        /// <param name="userName">
        /// login username
        /// </param>
        /// <param name="password">
        /// login password
        /// </param>
        /// <param name="mediaObject">
        /// struct with media details
        /// </param>
        /// <param name="request">
        /// The HTTP request.
        /// </param>
        /// <returns>
        /// struct with url to media
        /// </returns>
        internal MWAMediaInfo NewMediaObject(
            string blogId, string userName, string password, MWAMediaObject mediaObject, HttpContext request)
        {
            if (!Security.IsAuthorizedTo(AuthorizationCheck.HasAny, new Rights[]
            {
                Rights.CreateNewPosts,
                Rights.CreateNewPages,
                Rights.EditOwnPosts,
                Rights.EditOwnPages,
                Rights.EditOtherUsersPosts,
                Rights.EditOtherUsersPages
            }))
            {
                throw new MetaWeblogException("11", "User authentication failed");
            }

            var mediaInfo = new MWAMediaInfo();

            var rootPath    = string.Format("{0}files/", BlogSettings.Instance.StorageLocation);
            var serverPath  = request.Server.MapPath(rootPath);
            var saveFolder  = serverPath;
            var fileName    = mediaObject.name;
            var mediaFolder = string.Empty;

            // Check/Create Folders & Fix fileName
            if (mediaObject.name.LastIndexOf('/') > -1)
            {
                mediaFolder  = mediaObject.name.Substring(0, mediaObject.name.LastIndexOf('/'));
                saveFolder  += mediaFolder;
                mediaFolder += "/";
                saveFolder   = saveFolder.Replace('/', Path.DirectorySeparatorChar);
                fileName     = mediaObject.name.Substring(mediaObject.name.LastIndexOf('/') + 1);
            }
            else
            {
                if (saveFolder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    saveFolder = saveFolder.Substring(0, saveFolder.Length - 1);
                }
            }

            if (!Directory.Exists(saveFolder))
            {
                Directory.CreateDirectory(saveFolder);
            }

            saveFolder += Path.DirectorySeparatorChar;

            if (File.Exists(saveFolder + fileName))
            {
                // Find unique fileName
                for (var count = 1; count < 30000; count++)
                {
                    var tempFileName = fileName.Insert(fileName.LastIndexOf('.'), string.Format("_{0}", count));
                    if (File.Exists(saveFolder + tempFileName))
                    {
                        continue;
                    }

                    fileName = tempFileName;
                    break;
                }
            }

            // Save File
            using (var fs = new FileStream(saveFolder + fileName, FileMode.Create))
                using (var bw = new BinaryWriter(fs))
                {
                    bw.Write(mediaObject.bits);
                    bw.Close();
                }

            // Set Url
            var rootUrl = Utils.AbsoluteWebRoot.ToString();

            if (BlogSettings.Instance.RequireSslMetaWeblogApi)
            {
                rootUrl = rootUrl.Replace("https://", "http://");
            }

            var mediaType = mediaObject.type;

            if (mediaType.IndexOf('/') > -1)
            {
                mediaType = mediaType.Substring(0, mediaType.IndexOf('/'));
            }

            switch (mediaType)
            {
            case "image":
            case "notsent":
                // If there wasn't a type, let's pretend it is an image.  (Thanks Zoundry.  This is for you.)
                rootUrl += "image.axd?picture=";
                break;

            default:
                rootUrl += "file.axd?file=";
                break;
            }

            mediaInfo.url = rootUrl + mediaFolder + fileName;
            return(mediaInfo);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// metaWeblog.newMediaObject
        /// </summary>
        /// <param name="blogID">always 1000 in BlogEngine since it is a singlar blog instance</param>
        /// <param name="userName">login username</param>
        /// <param name="password">login password</param>
        /// <param name="mediaObject">struct with media details</param>
        /// <param name="request">The HTTP request.</param>
        /// <returns>struct with url to media</returns>
        internal MWAMediaInfo NewMediaObject(string blogID, string userName, string password, MWAMediaObject mediaObject, HttpContext request)
        {
            ValidateRequest(userName, password);

            MWAMediaInfo mediaInfo = new MWAMediaInfo();

            string rootPath = BlogSettings.Instance.StorageLocation + "files/";
            string serverPath = request.Server.MapPath(rootPath);
            string saveFolder = serverPath;
            string fileName = mediaObject.name;
            string mediaFolder = "";

            // Check/Create Folders & Fix fileName
            if (mediaObject.name.LastIndexOf('/') > -1)
            {
                mediaFolder = mediaObject.name.Substring(0, mediaObject.name.LastIndexOf('/'));
                saveFolder += mediaFolder;
                mediaFolder += "/";
                saveFolder = saveFolder.Replace('/', Path.DirectorySeparatorChar);
                fileName = mediaObject.name.Substring(mediaObject.name.LastIndexOf('/') + 1);
            }
            else
            {
                if (saveFolder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                    saveFolder = saveFolder.Substring(0, saveFolder.Length - 1);
            }
            if (!Directory.Exists(saveFolder))
                Directory.CreateDirectory(saveFolder);
            saveFolder += Path.DirectorySeparatorChar;

            if (File.Exists(saveFolder + fileName))
            {
                // Find unique fileName
                for (int count = 1; count < 30000; count++)
                {
                    string tempFileName = fileName.Insert(fileName.LastIndexOf('.'), "_" + count);
                    if (!File.Exists(saveFolder + tempFileName))
                    {
                        fileName = tempFileName;
                        break;
                    }
                }
            }

            // Save File
            FileStream fs = new FileStream(saveFolder + fileName, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(mediaObject.bits);
            bw.Close();

            // Set Url
            string rootUrl = Utils.AbsoluteWebRoot.ToString();
            if (BlogSettings.Instance.RequireSSLMetaWeblogAPI)
                rootUrl = rootUrl.Replace("https://", "http://");

            string mediaType = mediaObject.type;
            if (mediaType.IndexOf('/') > -1)
                mediaType = mediaType.Substring(0, mediaType.IndexOf('/'));
            switch (mediaType)
            {
                case "image":
                case "notsent": // If there wasn't a type, let's pretend it is an image.  (Thanks Zoundry.  This is for you.)
                    rootUrl += "image.axd?picture=";
                    break;
                default:
                    rootUrl += "file.axd?file=";
                    break;
            }

            mediaInfo.url = rootUrl + mediaFolder + fileName;
            return mediaInfo;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Loads object properties with contents of passed xml
        /// </summary>
        /// <param name="xml">xml doc with methodname and parameters</param>
        private void LoadXMLRequest(string xml)
        {
            XmlDocument request = new XmlDocument();

            try
            {
                if (!(xml.StartsWith("<?xml") || xml.StartsWith("<method")))
                {
                    xml = xml.Substring(xml.IndexOf("<?xml"));
                }
                request.LoadXml(xml);
            }
            catch (Exception ex)
            {
                throw new MetaWeblogException("01", "Invalid XMLRPC Request. (" + ex.Message + ")");
            }

            // Method name is always first
            _methodName = request.DocumentElement.ChildNodes[0].InnerText;

            // Parameters are next (and last)
            _inputParams = new List <XmlNode>();
            foreach (XmlNode node in request.SelectNodes("/methodCall/params/param"))
            {
                _inputParams.Add(node);
            }

            // Determine what params are what by method name
            switch (_methodName)
            {
            case "metaWeblog.newPost":
                _blogID   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                _post     = GetPost(_inputParams[3]);
                if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
                {
                    _publish = false;
                }
                else
                {
                    _publish = true;
                }
                break;

            case "metaWeblog.editPost":
                _postID   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                _post     = GetPost(_inputParams[3]);
                if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
                {
                    _publish = false;
                }
                else
                {
                    _publish = true;
                }
                break;

            case "metaWeblog.getPost":
                _postID   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                break;

            case "metaWeblog.newMediaObject":
                _blogID   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                _media    = GetMediaObject(_inputParams[3]);
                break;

            case "metaWeblog.getCategories":
            case "wp.getAuthors":
            case "wp.getPageList":
            case "wp.getPages":
            case "wp.getTags":
                _blogID   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                break;

            case "metaWeblog.getRecentPosts":
                _blogID        = _inputParams[0].InnerText;
                _userName      = _inputParams[1].InnerText;
                _password      = _inputParams[2].InnerText;
                _numberOfPosts = Int32.Parse(_inputParams[3].InnerText, CultureInfo.InvariantCulture);
                break;

            case "blogger.getUsersBlogs":
            case "metaWeblog.getUsersBlogs":
                _appKey   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                break;

            case "blogger.deletePost":
                _appKey   = _inputParams[0].InnerText;
                _postID   = _inputParams[1].InnerText;
                _userName = _inputParams[2].InnerText;
                _password = _inputParams[3].InnerText;
                if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
                {
                    _publish = false;
                }
                else
                {
                    _publish = true;
                }
                break;

            case "blogger.getUserInfo":
                _appKey   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                break;

            case "wp.newPage":
                _blogID   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                _page     = GetPage(_inputParams[3]);
                if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
                {
                    _publish = false;
                }
                else
                {
                    _publish = true;
                }
                break;

            case "wp.getPage":
                _blogID   = _inputParams[0].InnerText;
                _pageID   = _inputParams[1].InnerText;
                _userName = _inputParams[2].InnerText;
                _password = _inputParams[3].InnerText;
                break;

            case "wp.editPage":
                _blogID   = _inputParams[0].InnerText;
                _pageID   = _inputParams[1].InnerText;
                _userName = _inputParams[2].InnerText;
                _password = _inputParams[3].InnerText;
                _page     = GetPage(_inputParams[4]);
                if (_inputParams[5].InnerText == "0" || _inputParams[5].InnerText == "false")
                {
                    _publish = false;
                }
                else
                {
                    _publish = true;
                }
                break;

            case "wp.deletePage":
                _blogID   = _inputParams[0].InnerText;
                _userName = _inputParams[1].InnerText;
                _password = _inputParams[2].InnerText;
                _pageID   = _inputParams[3].InnerText;
                break;

            default:
                throw new MetaWeblogException("02", "Unknown Method. (" + _methodName + ")");
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// metaWeblog.newMediaObject
        /// </summary>
        /// <param name="blogID">always 1000 in BlogEngine since it is a singlar blog instance</param>
        /// <param name="userName">login username</param>
        /// <param name="password">login password</param>
        /// <param name="mediaObject">struct with media details</param>
        /// <param name="request">The HTTP request.</param>
        /// <returns>struct with url to media</returns>
        internal MWAMediaInfo NewMediaObject(string blogID, string userName, string password, MWAMediaObject mediaObject, HttpContext request)
        {
            ValidateRequest(userName, password);

            MWAMediaInfo mediaInfo = new MWAMediaInfo();

            string rootPath    = BlogSettings.Instance.StorageLocation + "files/";
            string serverPath  = request.Server.MapPath(rootPath);
            string saveFolder  = serverPath;
            string fileName    = mediaObject.name;
            string mediaFolder = "";

            // Check/Create Folders & Fix fileName
            if (mediaObject.name.LastIndexOf('/') > -1)
            {
                mediaFolder  = mediaObject.name.Substring(0, mediaObject.name.LastIndexOf('/'));
                saveFolder  += mediaFolder;
                mediaFolder += "/";
                saveFolder   = saveFolder.Replace('/', Path.DirectorySeparatorChar);
                fileName     = mediaObject.name.Substring(mediaObject.name.LastIndexOf('/') + 1);
            }
            else
            {
                if (saveFolder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    saveFolder = saveFolder.Substring(0, saveFolder.Length - 1);
                }
            }
            if (!Directory.Exists(saveFolder))
            {
                Directory.CreateDirectory(saveFolder);
            }
            saveFolder += Path.DirectorySeparatorChar;

            if (File.Exists(saveFolder + fileName))
            {
                // Find unique fileName
                for (int count = 1; count < 30000; count++)
                {
                    string tempFileName = fileName.Insert(fileName.LastIndexOf('.'), "_" + count);
                    if (!File.Exists(saveFolder + tempFileName))
                    {
                        fileName = tempFileName;
                        break;
                    }
                }
            }

            // Save File
            FileStream   fs = new FileStream(saveFolder + fileName, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);

            bw.Write(mediaObject.bits);
            bw.Close();

            // Set Url
            string rootUrl = Utils.AbsoluteWebRoot.ToString();

            if (BlogSettings.Instance.RequireSSLMetaWeblogAPI)
            {
                rootUrl = rootUrl.Replace("https://", "http://");
            }

            string mediaType = mediaObject.type;

            if (mediaType.IndexOf('/') > -1)
            {
                mediaType = mediaType.Substring(0, mediaType.IndexOf('/'));
            }
            switch (mediaType)
            {
            case "image":
            case "notsent":                     // If there wasn't a type, let's pretend it is an image.  (Thanks Zoundry.  This is for you.)
                rootUrl += "image.axd?picture=";
                break;

            default:
                rootUrl += "file.axd?file=";
                break;
            }

            mediaInfo.url = rootUrl + mediaFolder + fileName;
            return(mediaInfo);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Creates a Metaweblog Media object from the XML struct
        /// </summary>
        /// <param name="node">
        /// XML contains a Metaweblog MediaObject Struct
        /// </param>
        /// <returns>
        /// Metaweblog MediaObject Struct Obejct
        /// </returns>
        private static MWAMediaObject GetMediaObject(XmlNode node)
        {
            var name = node.SelectSingleNode("value/struct/member[name='name']");
            var type = node.SelectSingleNode("value/struct/member[name='type']");
            var bits = node.SelectSingleNode("value/struct/member[name='bits']");
            var temp = new MWAMediaObject
                {
                    name = name == null ? string.Empty : name.LastChild.InnerText,
                    type = type == null ? "notsent" : type.LastChild.InnerText,
                    bits = Convert.FromBase64String(bits == null ? string.Empty : bits.LastChild.InnerText)
                };

            return temp;
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Loads object properties with contents of passed xml
        /// </summary>
        /// <param name="xml">xml doc with methodname and parameters</param>
        private void LoadXMLRequest(string xml)
        {
            XmlDocument request = new XmlDocument();
            try
            {
              if (!(xml.StartsWith("<?xml") || xml.StartsWith("<method")))
              {
                        xml = xml.Substring(xml.IndexOf("<?xml"));
              }
              request.LoadXml(xml);
            }
            catch (Exception ex)
            {
              throw new MetaWeblogException("01", "Invalid XMLRPC Request. (" + ex.Message + ")");
            }

            // Method name is always first
            _methodName = request.DocumentElement.ChildNodes[0].InnerText;

            // Parameters are next (and last)
            _inputParams = new List<XmlNode>();
            foreach (XmlNode node in request.SelectNodes("/methodCall/params/param"))
            {
              _inputParams.Add(node);
            }

            // Determine what params are what by method name
            switch (_methodName)
            {
              case "metaWeblog.newPost":
            _blogID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            _post = GetPost(_inputParams[3]);
            if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
                _publish = false;
            else
                _publish = true;
            break;
              case "metaWeblog.editPost":
            _postID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            _post = GetPost(_inputParams[3]);
            if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
                _publish = false;
            else
                _publish = true;
            break;
              case "metaWeblog.getPost":
            _postID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            break;
              case "metaWeblog.newMediaObject":
            _blogID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            _media = GetMediaObject(_inputParams[3]);
            break;
              case "metaWeblog.getCategories":
              case "wp.getAuthors":
              case "wp.getPageList":
              case "wp.getPages":
              case "wp.getTags":
            _blogID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            break;
              case "metaWeblog.getRecentPosts":
            _blogID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            _numberOfPosts = Int32.Parse(_inputParams[3].InnerText, CultureInfo.InvariantCulture);
            break;
              case "blogger.getUsersBlogs":
              case "metaWeblog.getUsersBlogs":
            _appKey = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            break;
              case "blogger.deletePost":
            _appKey = _inputParams[0].InnerText;
            _postID = _inputParams[1].InnerText;
            _userName = _inputParams[2].InnerText;
            _password = _inputParams[3].InnerText;
            if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
                _publish = false;
            else
                _publish = true;
            break;
              case "blogger.getUserInfo":
            _appKey = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            break;
              case "wp.newPage":
            _blogID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            _page = GetPage(_inputParams[3]);
            if (_inputParams[4].InnerText == "0" || _inputParams[4].InnerText == "false")
              _publish = false;
            else
              _publish = true;
            break;
              case "wp.getPage":
            _blogID = _inputParams[0].InnerText;
            _pageID = _inputParams[1].InnerText;
            _userName = _inputParams[2].InnerText;
            _password = _inputParams[3].InnerText;
            break;
              case "wp.editPage":
            _blogID = _inputParams[0].InnerText;
            _pageID = _inputParams[1].InnerText;
            _userName = _inputParams[2].InnerText;
            _password = _inputParams[3].InnerText;
            _page = GetPage(_inputParams[4]);
            if (_inputParams[5].InnerText == "0" || _inputParams[5].InnerText == "false")
              _publish = false;
            else
              _publish = true;
            break;
              case "wp.deletePage":
            _blogID = _inputParams[0].InnerText;
            _userName = _inputParams[1].InnerText;
            _password = _inputParams[2].InnerText;
            _pageID = _inputParams[3].InnerText;
            break;
              default:
            throw new MetaWeblogException("02", "Unknown Method. (" + _methodName + ")");

            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Creates a Metaweblog Media object from the XML struct
        /// </summary>
        /// <param name="node">XML contains a Metaweblog MediaObject Struct</param>
        /// <returns>Metaweblog MediaObject Struct Obejct</returns>
        private MWAMediaObject GetMediaObject(XmlNode node)
        {
            MWAMediaObject temp = new MWAMediaObject();
            temp.name = node.SelectSingleNode("value/struct/member[name='name']").LastChild.InnerText;
            if (node.SelectSingleNode("value/struct/member[name='type']") == null)
              temp.type = "notsent";
            else
              temp.type = node.SelectSingleNode("value/struct/member[name='type']").LastChild.InnerText;
            temp.bits = System.Convert.FromBase64String(node.SelectSingleNode("value/struct/member[name='bits']").LastChild.InnerText);

            return temp;
        }