Esempio n. 1
0
        public static CommentBE PostNewComment(PageBE page, DreamMessage request, DreamContext context)
        {
            ValidateCommentText(request.ContentType, request.AsText());

            CommentBE comment = new CommentBE();

            comment.Title           = context.GetParam("title", string.Empty);
            comment.PageId          = page.ID;
            comment.Content         = request.AsText();
            comment.ContentMimeType = request.ContentType.ToString();
            comment.PosterUserId    = DekiContext.Current.User.ID;
            comment.CreateDate      = DateTime.UtcNow;

            //Note (MaxM): Replytoid/replies not yet exposed
            //ulong replyToId = context.GetParam<ulong>("replyto", 0);
            //if (replyToId == 0)
            //    newComment.ReplyToId = null;
            //else
            //    newComment.ReplyToId = replyToId;

            ushort commentNumber;
            uint   commentId = DbUtils.CurrentSession.Comments_Insert(comment, out commentNumber);

            if (commentId == 0)
            {
                return(null);
            }
            else
            {
                comment.Id     = commentId;
                comment.Number = commentNumber;
                PageBL.Touch(page, comment.CreateDate);
                RecentChangeBL.AddCommentCreateRecentChange(comment.CreateDate, page, DekiContext.Current.User, DekiResources.COMMENT_ADDED(comment.Number), comment);
                return(comment);
            }
        }