示例#1
0
        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");
        }
示例#2
0
        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);
                    }
                }
            }
        }