public MetaWeblog.Post getPost(string postid, string username, string password) { if (ValidateUser(username, password)) { VersionStoreCollection vsc = VersionStore.GetVersionHistory(Convert.ToInt32(postid)); Graffiti.Core.Post p = new Graffiti.Core.Post(); if (vsc != null && vsc.Count > 0) { List <Graffiti.Core.Post> the_Posts = new List <Graffiti.Core.Post>(); foreach (VersionStore vs in vsc) { the_Posts.Add(ObjectManager.ConvertToObject <Graffiti.Core.Post>(vs.Data)); } the_Posts.Sort(delegate(Graffiti.Core.Post p1, Graffiti.Core.Post p2) { return(Comparer <int> .Default.Compare(p2.Version, p1.Version)); }); p = the_Posts[0]; } else { p = new Graffiti.Core.Post(postid); } return(ConvertToPost(p)); } throw new XmlRpcFaultException(0, "User does not exist"); }
private static void RemoveFilesAndFolders(Package p) { if (p.Files != null) { foreach (string file in p.Files) { string fileName = HttpContext.Current.Server.MapPath(VirtualPathUtility.ToAbsolute("~" + file)); if (File.Exists(fileName)) { File.Delete(fileName); } if (File.Exists(fileName + ".old")) { File.Move(fileName + ".old", fileName); } else { VersionStoreCollection vsc = VersionStore.GetVersionHistory(fileName, false); if (vsc != null && vsc.Count > 0) { WriteFile(fileName, vsc[0].Data); VersionStore.Destroy(VersionStore.Columns.UniqueId, vsc[0].UniqueId); } } } } if (p.Directories != null) { foreach (string dir in p.Directories) { if (Directory.Exists(dir) && Directory.GetFiles(dir).Length == 0) { Directory.Delete(dir); } } } }