コード例 #1
0
ファイル: PostPublisher.cs プロジェクト: perploug/umblr
        private void CreateAndPublish(Post p)
        {
            var stream = getStream();

            if (stream != null)
            {
                var cs = new ContentService();
                int postId;
                IContent post;

                if (TryGetPostId(p, out postId))
                    post = cs.GetById(postId);
                else
                {
                    var parent = createFolderScructure(p.Date, stream);
                    post = cs.CreateContent(p.Name, parent, PostTypeAlias);
                }

                MarkdownSharp.Markdown md = new Markdown();
                post.SetValue("bodyText", md.Transform(p.Content));

               post.SetValue("postDate", p.Date);

                if (p.Draft)
                    cs.Save(post);
                else
                    cs.SaveAndPublish(post);
            }
        }
コード例 #2
0
ファイル: PostPublisher.cs プロジェクト: perploug/umblr
 public void Delete(Post p)
 {
     int id;
     if (TryGetPostId(p, out id))
     {
         var cs = new ContentService();
         var post = cs.GetById(id);
         cs.UnPublish(post);
         cs.Delete(post);
     }
 }
コード例 #3
0
ファイル: PostFactory.cs プロジェクト: perploug/umblr
        private static string GetName(Post p, bool hasDate)
        {
            var name = p.FileName;

            if (p.Draft)
                name = name.Remove(name.Length - 9);
            else
                name = name.Remove(name.Length - 3);

            if (hasDate)
                name = name.Substring(11);

            name = name.Replace('-', ' ');
            return name;
        }
コード例 #4
0
ファイル: PostFactory.cs プロジェクト: perploug/umblr
        public static Post Convert(FileInfo fi)
        {
            var p = new Post();
            p.FileName = fi.Name;
            p.Draft = p.FileName.ToLower().EndsWith(".draft.md");

            DateTime _d;
            bool hasDate = true;
            if (p.FileName.Length > 10 && DateTime.TryParse(p.FileName.Substring(0, 10), out _d))
                p.Date = _d;
            else
            {
                p.Date = DateTime.Now;
                hasDate = false;

            }
            p.Name = GetName(p, hasDate);
            var s = fi.OpenText();
            p.Content = s.ReadToEnd();
            s.Close();

            return p;
        }
コード例 #5
0
ファイル: PostPublisher.cs プロジェクト: perploug/umblr
 public void ProcessPost(Post p)
 {
     if(!p.Draft)
         CreateAndPublish(p);
 }
コード例 #6
0
ファイル: PostPublisher.cs プロジェクト: perploug/umblr
 public bool Exists(Post p)
 {
     int id;
     return TryGetPostId(p, out id);
 }
コード例 #7
0
ファイル: PostPublisher.cs プロジェクト: perploug/umblr
        private bool TryGetPostId(Post p, out int id)
        {
            id = 0;
            var stream = getStream();

            if (stream == null)
                return false;

            var post = stream.Descendants(PostTypeAlias).Where(x => x.Name == p.Name).FirstOrDefault();
            if (post == null)
                return false;

            id = post.Id;
            return true;
        }