public static MediaObjectInfo Create(MediaObject media, string username) { MediaObjectInfo info = new MediaObjectInfo(); if (!Directory.Exists(HttpContext.Current.Server.MapPath("..") + "/files/media/image/WindowsLiveWriter")) { if (!Directory.Exists(HttpContext.Current.Server.MapPath("..") + "/files")) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("..") + "/files"); } if (!Directory.Exists(HttpContext.Current.Server.MapPath("..") + "/files/media")) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("..") + "/files/media"); } if (!Directory.Exists(HttpContext.Current.Server.MapPath("..") + "/files/media/image")) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("..") + "/files/media/image"); } if (!Directory.Exists(HttpContext.Current.Server.MapPath("..") + "/files/media/image/WindowsLiveWriter")) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("..") + "/files/media/image/WindowsLiveWriter"); } } string[] pathParts = Regex.Split(media.name, "/"); if (!Directory.Exists(HttpContext.Current.Server.MapPath("..") + "/files/media/image/WindowsLiveWriter/" + pathParts[1])) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("..") + "/files/media/image/WindowsLiveWriter/" + pathParts[1]); } FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("..") + "/files/media/image/" + media.name, FileMode.Create, FileAccess.Write); fs.Write(media.bits, 0, media.bits.Length); fs.Close(); string host = HttpContext.Current.Request.Url.Host; int port = HttpContext.Current.Request.Url.Port; if (port != 80) { host += ":" + port; } info.url = "http://" + host + "/files/media/image/" + media.name; //Save a media record for this file BlogMedia bMedia = new BlogMedia(); bMedia.BlogConfigId = CacheHandler.BlogConfigId; VeritasRepository repo = VeritasRepository.GetInstance(); bMedia.CreatedById = repo.GetBlogUserByUserName(CacheHandler.BlogConfigId, username).BlogUserId; bMedia.FileName = media.name; bMedia.FilePath = HttpContext.Current.Server.MapPath("..") + "/files/media/image/" + media.name; bMedia.ServerPath = info.url; repo.Add(bMedia); repo.Save(); return info; }
MediaObjectInfo IMetaWeblog.NewMediaObject(string blogid, string username, string password, MediaObject mediaObject) { if (ValidateUser(username, password)) { MediaObjectInfo objectInfo = new MediaObjectInfo(); objectInfo = FileCreator.Create(mediaObject, username); return objectInfo; } throw new XmlRpcFaultException(0, "User is not valid!"); }