Esempio n. 1
0
        private Comment GetCoreFromJson(BlogEngine.Core.Data.Models.CommentItem c)
        {
            Comment item = (from p in Post.Posts
                            from cmn in p.AllComments where cmn.Id == c.Id select cmn).FirstOrDefault();

            if (c.IsPending)
            {
                item.IsApproved = false;
                item.IsSpam     = false;
            }
            if (c.IsApproved)
            {
                item.IsApproved = true;
                item.IsSpam     = false;
            }
            if (c.IsSpam)
            {
                item.IsApproved = false;
                item.IsSpam     = true;
            }

            item.Email   = c.Email;
            item.Author  = c.Author;
            item.Website = string.IsNullOrEmpty(c.Website) ? null : new Uri(c.Website);
            item.IP      = c.Ip;
            return(item);
        }
        private CommentItem CreateJsonCommentFromComment(Comment c, List<Comment> postComments)
        {
            var jc = new CommentItem();

            jc.Id = c.Id;
            jc.IsApproved = c.IsApproved;
            jc.IsSpam = c.IsSpam;
            jc.IsPending = !c.IsApproved && !c.IsSpam;
            jc.Email = c.Email == "trackback" ? "pingback" : c.Email; 
            jc.Author = c.Author;
            jc.Title = c.Teaser;
            jc.Website = c.Website == null ? "" : c.Website.ToString();
            jc.AuthorAvatar = c.Avatar;
            jc.Ip = c.IP;
            jc.DateCreated = c.DateCreated.ToString("yyyy-MM-dd HH:mm");
            jc.RelativeLink = c.RelativeLink;
            jc.HasChildren = postComments.Where(pc => pc.ParentId == c.Id).FirstOrDefault() != null;
            jc.Avatar = Gravatar(c);

            return jc;
        }
        /// <summary>
        /// Update item
        /// </summary>
        /// <param name="item">Item to update</param>
        /// <param name="action">Action</param>
        /// <returns>True on success</returns>
        public bool Update(CommentItem item, string action)
        {
            if (!Security.IsAuthorizedTo(Rights.ModerateComments))
                throw new System.UnauthorizedAccessException();

            foreach (var p in Post.Posts.ToArray())
            {
                foreach (var c in p.Comments.Where(c => c.Id == item.Id).ToArray())
                {
                    if (action == "approve")
                    {
                        c.IsApproved = true;
                        c.IsSpam = false;
                        p.DateModified = DateTime.Now;
                        p.Save();
                        return true;
                    }

                    if (action == "unapprove")
                    {
                        c.IsApproved = false;
                        c.IsSpam = true;
                        p.DateModified = DateTime.Now;
                        p.Save();
                        return true;
                    }

                    c.Author = item.Author;
                    c.Email = item.Email;
                    c.Website = string.IsNullOrEmpty(item.Website) ? null : new Uri(item.Website);

                    if (item.IsPending)
                    {
                        c.IsApproved = false;
                        c.IsSpam = false;
                    }
                    if (item.IsApproved)
                    {
                        c.IsApproved = true;
                        c.IsSpam = false;
                    }
                    if (item.IsSpam)
                    {
                        c.IsApproved = false;
                        c.IsSpam = true;
                    }
                    // need to mark post as "dirty"
                    p.DateModified = DateTime.Now;
                    p.Save();
                    return true;
                }
            }
            return false;
        }
 public bool Update(CommentItem item, string action)
 {
     return true;
 }
Esempio n. 5
0
        /// <summary>
        /// Convert json comment back to BE comment
        /// </summary>
        /// <param name="c">Json comment</param>
        /// <returns>Comment</returns>
        public static Comment SetComment(CommentItem c)
        {
            Comment item = (from p in Post.Posts
                            from cmn in p.AllComments
                            where cmn.Id == c.Id
                            select cmn).FirstOrDefault();

            if (c.IsPending)
            {
                item.IsApproved = false;
                item.IsSpam = false;
            }
            if (c.IsApproved)
            {
                item.IsApproved = true;
                item.IsSpam = false;
            }
            if (c.IsSpam)
            {
                item.IsApproved = false;
                item.IsSpam = true;
            }

            item.Email = c.Email;
            item.Author = c.Author;
            return item;
        }
Esempio n. 6
0
 /// <summary>
 /// Get json comment
 /// </summary>
 /// <param name="c">Comment</param>
 /// <param name="postComments">List of comments</param>
 /// <returns>Json comment</returns>
 public static CommentItem GetComment(Comment c, List<Comment> postComments)
 {
     var jc = new CommentItem();
     jc.Id = c.Id;
     jc.IsApproved = c.IsApproved;
     jc.IsSpam = c.IsSpam;
     jc.IsPending = !c.IsApproved && !c.IsSpam;
     jc.Email = c.Email == "trackback" ? "pingback" : c.Email;
     jc.Author = c.Author;
     jc.Title = c.Teaser.Length < 80 ? c.Teaser : c.Teaser.Substring(0, 80) + "...";
     jc.DateCreated = c.DateCreated.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
     jc.RelativeLink = c.RelativeLink;
     jc.HasChildren = postComments.Where(pc => pc.ParentId == c.Id).FirstOrDefault() != null;
     jc.Avatar = Gravatar(c);
     return jc;
 }
Esempio n. 7
0
 public CommentItem Add(CommentItem item)
 {
     return new CommentItem() { Id = Guid.NewGuid() };
 }