private void bindComments(IBlock cblock, List <ShareComment> clist) { Tree <ShareComment> tree = new Tree <ShareComment>(clist); List <Node <ShareComment> > list = tree.FindAllOrdered(); foreach (Node <ShareComment> nc in list) { ShareComment c = nc.getNode(); cblock.Set("c.UserPic", c.User.PicSmall); cblock.Set("c.UserLink", Link.ToMember(c.User)); cblock.Set("c.UserName", c.User.Name); cblock.Set("c.Id", c.Id); cblock.Set("c.RootId", c.Root.Id); cblock.Set("c.Content", c.Content); cblock.Set("c.Created", c.Created); cblock.Set("c.Indent", nc.getDepth() * 45); cblock.Next(); } }
//-------------------------------------- public virtual void InsertComment(ShareComment c, String shareLink, String parentShareLink) { saveComment(c); copyCommentCountToFeed(c); addNotificationToRoot(c, shareLink); addNotificationToParent(c, parentShareLink); }
public virtual Share GetByIdWithComments(int id) { Share share = Share.findById(id); if (share != null) { List <ShareComment> list = ShareComment.find("RootId=" + id + " order by Id").list(); share.setComments(list); } return(share); }
//-------------------------------------- private void mergeCommentsPrivate(List <Share> list) { String ids = getShareIds(list); if (strUtil.IsNullOrEmpty(ids)) { return; } List <ShareComment> comments = ShareComment.find("RootId in (" + ids + ") order by Id").list(); mergeComments(list, comments); }
private void addNotificationToRoot(ShareComment c, String shareLink) { Share root = c.Root; int receiverId = root.Creator.Id; if (c.User.Id == receiverId) { return; } String msg = c.User.Name + " " + lang.get("commentYour") + " <a href=\"" + shareLink + "\">" + lang.get("share") + "</a>"; nfService.send(receiverId, typeof(User).FullName, msg, NotificationType.Comment); }
private void addNotificationToParent(ShareComment c, String shareLink) { if (c.ParentId == 0) { return; } ShareComment parent = ShareComment.findById(c.ParentId); int receiverId = parent.User.Id; if (c.User.Id == receiverId) { return; } //String msg = c.User.Name + " 回复了你的分享 <a href=\"" + shareLink + "\">评论</a>"; String msg = c.User.Name + " " + lang.get("commentYour") + " <a href=\"" + shareLink + "\">" + lang.get("share") + "</a>"; nfService.send(receiverId, typeof(User).FullName, msg, NotificationType.Comment); }
//comment by json public JsonResult CommentSubmitByClick(int PostId, int x, string Comment, int Flag) { ShareComment aShareComment = new ShareComment(); aShareComment.Comment = Comment; aShareComment.ContentId = PostId; aShareComment.UserId = x; aShareComment.CommentTime = DateTime.Now; aShareComment.Flag = Flag; try { //save comments db.ShareComments.Add(aShareComment); db.SaveChanges(); } catch (Exception) { RedirectToAction("Index", "Index"); } //get comments list var CommentsList = _ShareContentBll.JsonShareCommentViewModels(aShareComment.ContentId); return(Json(CommentsList, JsonRequestBehavior.AllowGet)); }
public void SaveComment() { if (ctx.viewer.IsLogin == false) { echoRedirect(lang("exPlsLogin")); return; } String content = ctx.Post("content"); if (strUtil.IsNullOrEmpty(content)) { echoError(lang("exContent")); return; } int rootId = ctx.PostInt("rootId"); int parentId = ctx.PostInt("parentId"); //content = strUtil.CutString( content, Microblog.ContentLength ); Share share = shareService.GetById(rootId); ShareComment c = new ShareComment(); c.Root = share; c.ParentId = parentId; c.User = (User)ctx.viewer.obj; c.Ip = ctx.Ip; c.Content = content; //String shareLink = Link.To( share.Creator, Show, share.Id ); // 应该是接收者可以查看的,所以网址在接收者后台中 String rootShareLink = Link.To(share.Creator, new ShareController().Show, share.Id); String parentShareLink = null; if (parentId > 0) { ShareComment pshare = shareService.GetCommentById(parentId); parentShareLink = Link.To(pshare.User, new ShareController().Show, share.Id); } shareService.InsertComment(c, rootShareLink, parentShareLink); String str = @" <table style=""width: 95%; margin:5px 0px 5px 0px;background:#ebf3f7;""> <tr> <td style=""width:38px;""><a href=""{0}""><img src=""{1}"" style=""width:32px;""/></a></td> <td style=""vertical-align:top;""> <div><a href=""{0}"">{2}</a> <span class=""note"">" + lang("postedAt") + @" {3}</span></div> <div style=""margin-top:5px;"">{4}</div> </td> </tr> </table> "; String msg = string.Format(str, Link.ToMember(ctx.viewer.obj), ctx.viewer.obj.PicSmall, ctx.viewer.obj.Name, cvt.ToTimeString(DateTime.Now), content ); if (parentId == 0) { echoHtmlTo("shareComments" + rootId, msg); } else { echoHtmlTo("commentContent" + parentId, msg); } }
private void saveComment( ShareComment c ) { c.insert(); }
private void copyCommentCountToFeed( ShareComment c ) { feedService.SetCommentCount( c.Root ); }
private void addNotificationToRoot( ShareComment c, String shareLink ) { Share root = c.Root; int receiverId = root.Creator.Id; if (c.User.Id == receiverId) return; String msg = c.User.Name + " " + lang.get( "commentYour" ) + " <a href=\"" + shareLink + "\">" + lang.get( "share" ) + "</a>"; nfService.send( receiverId, typeof(User).FullName, msg, NotificationType.Comment ); }
private void addNotificationToParent( ShareComment c, String shareLink ) { if (c.ParentId == 0) return; ShareComment parent = ShareComment.findById( c.ParentId ); int receiverId = parent.User.Id; if (c.User.Id == receiverId) return; //String msg = c.User.Name + " 回复了你的分享 <a href=\"" + shareLink + "\">评论</a>"; String msg = c.User.Name + " " + lang.get( "commentYour" ) + " <a href=\"" + shareLink + "\">" + lang.get( "share" ) + "</a>"; nfService.send( receiverId, typeof( User ).FullName, msg, NotificationType.Comment ); }
//-------------------------------------- public virtual void InsertComment( ShareComment c, String shareLink, String parentShareLink ) { saveComment( c ); copyCommentCountToFeed( c ); addNotificationToRoot( c, shareLink ); addNotificationToParent( c, parentShareLink ); }
public virtual ShareComment GetCommentById(int id) { return(ShareComment.findById(id)); }
public void SaveComment() { if (ctx.viewer.IsLogin == false) { echoRedirect( lang( "exPlsLogin" ) ); return; } String content = ctx.Post( "content" ); if (strUtil.IsNullOrEmpty( content )) { echoError( lang( "exContent" ) ); return; } int rootId = ctx.PostInt( "rootId" ); int parentId = ctx.PostInt( "parentId" ); //content = strUtil.CutString( content, Microblog.ContentLength ); Share share = shareService.GetById( rootId ); ShareComment c = new ShareComment(); c.Root = share; c.ParentId = parentId; c.User = (User)ctx.viewer.obj; c.Ip = ctx.Ip; c.Content = content; //String shareLink = Link.To( share.Creator, Show, share.Id ); // 应该是接收者可以查看的,所以网址在接收者后台中 String rootShareLink = Link.To( share.Creator, new ShareController().Show, share.Id ); String parentShareLink = null; if (parentId > 0) { ShareComment pshare = shareService.GetCommentById( parentId ); parentShareLink = Link.To( pshare.User, new ShareController().Show, share.Id ); } shareService.InsertComment( c, rootShareLink, parentShareLink ); String str = @" <table style=""width: 95%; margin:5px 0px 5px 0px;background:#ebf3f7;""> <tr> <td style=""width:38px;""><a href=""{0}""><img src=""{1}"" style=""width:32px;""/></a></td> <td style=""vertical-align:top;""> <div><a href=""{0}"">{2}</a> <span class=""note"">" + lang( "postedAt" ) + @" {3}</span></div> <div style=""margin-top:5px;"">{4}</div> </td> </tr> </table> "; String msg = string.Format( str, Link.ToMember( ctx.viewer.obj ), ctx.viewer.obj.PicSmall, ctx.viewer.obj.Name, cvt.ToTimeString( DateTime.Now ), content ); if (parentId == 0) echoHtmlTo( "shareComments" + rootId, msg ); else echoHtmlTo( "commentContent" + parentId, msg ); }
private void copyCommentCountToFeed(ShareComment c) { feedService.SetCommentCount(c.Root); }
private void saveComment(ShareComment c) { c.insert(); }