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; }
/// <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; }
/// <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; }
public CommentItem Add(CommentItem item) { return new CommentItem() { Id = Guid.NewGuid() }; }