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();
            }
        }
Beispiel #2
0
        //--------------------------------------

        public virtual void InsertComment(ShareComment c, String shareLink, String parentShareLink)
        {
            saveComment(c);
            copyCommentCountToFeed(c);

            addNotificationToRoot(c, shareLink);
            addNotificationToParent(c, parentShareLink);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        //--------------------------------------

        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        //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);
            }
        }
Beispiel #9
0
 private void saveComment( ShareComment c )
 {
     c.insert();
 }
Beispiel #10
0
 private void copyCommentCountToFeed( ShareComment c )
 {
     feedService.SetCommentCount( c.Root );
 }
Beispiel #11
0
        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 );
        }
Beispiel #12
0
        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 );
        }
Beispiel #13
0
        //--------------------------------------
        public virtual void InsertComment( ShareComment c, String shareLink, String parentShareLink )
        {
            saveComment( c );
            copyCommentCountToFeed( c );

            addNotificationToRoot( c, shareLink );
            addNotificationToParent( c, parentShareLink );
        }
Beispiel #14
0
 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 );
        }
Beispiel #16
0
 private void copyCommentCountToFeed(ShareComment c)
 {
     feedService.SetCommentCount(c.Root);
 }
Beispiel #17
0
 private void saveComment(ShareComment c)
 {
     c.insert();
 }