Sitecore.Modules.WeBlog.MetaBlogApi.newMediaObject C# (CSharp) Method

newMediaObject() private method

private newMediaObject ( string blogid, string username, string password, CookComputing.XmlRpc.XmlRpcStruct rpcstruct ) : CookComputing.XmlRpc.XmlRpcStruct
blogid string
username string
password string
rpcstruct CookComputing.XmlRpc.XmlRpcStruct
return CookComputing.XmlRpc.XmlRpcStruct
        public XmlRpcStruct newMediaObject(string blogid, string username, string password, XmlRpcStruct rpcstruct)
        {
            // Check user validation
            Authenticate(username, password);

            var name = rpcstruct["name"].ToString();
            var media = (byte[])rpcstruct["bits"];
            var blogName = string.Empty;

            var currentBlog = GetContentDatabase().GetItem(blogid);
            blogName = currentBlog.Name;

            // Get filename
            var fileName = Path.GetFileName(name);
            var imageName = ItemUtil.ProposeValidItemName(Path.GetFileNameWithoutExtension(fileName));

            // Create strem from byte array
            var memStream = new MemoryStream(media);
            var md = new MediaCreatorOptions();
            md.Destination = string.Join("/", new string[]{Constants.Paths.WeBlogMedia, blogName, imageName});
            md.Database = GetContentDatabase();
            md.AlternateText = imageName;

            // Check access rights
            CheckUserCreateRights(md.Destination);

            // Create mediaitem
            var mediaItem = MediaManager.Creator.CreateFromStream(memStream, fileName, md);

            // Close stream
            memStream.Close();
            memStream.Dispose();

            // Publish mediaitem to web database
            ContentHelper.PublishItemAndRequiredAncestors(mediaItem.ID);

            // Get the mediaitem url and return it
            var rstruct = new XmlRpcStruct();

            var options = new MediaUrlOptions()
            {
                AbsolutePath = false,
                UseItemPath = false
            };

            rstruct.Add("url", MediaManager.GetMediaUrl(mediaItem, options));
            return rstruct;
        }