Ejemplo n.º 1
0
        public ActionResult ForwardMicroblog(string forwardBody)
        {
            if (!ValidateContentLength(forwardBody))
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "内容超出字数限制!")));
            }

            bool isBanned = ModelState.HasBannedWord();

            forwardBody = Tunynet.Utilities.WebUtility.HtmlEncode(forwardBody);
            if (isBanned)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "内容中包含非法词语!")));
            }

            bool isCommnet         = Request.Form.GetBool("isCommnet", false);
            bool isCommentOriginal = Request.Form.GetBool("isCommentOriginal", false);

            IUser currentUser = UserContext.CurrentUser;

            MicroblogEntity microblog = MicroblogEntity.New();

            microblog.Body                 = string.IsNullOrEmpty(forwardBody) ? "转发微博" : forwardBody;
            microblog.Author               = currentUser.DisplayName;
            microblog.UserId               = currentUser.UserId;
            microblog.OwnerId              = currentUser.UserId;
            microblog.TenantTypeId         = TenantTypeIds.Instance().User();
            microblog.ForwardedMicroblogId = Request.Form.Get <long>("forwardedMicroblogId", 0);
            microblog.OriginalMicroblogId  = Request.Form.Get <long>("originalMicroblogId", 0);

            if (!new Authorizer().Microblog_Create(microblog.TenantTypeId, microblog.OwnerId))
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "您没有权限进行转发!")));
            }

            long toUserId         = Request.Form.Get <long>("toUserId", 0);
            long toOriginalUserId = Request.Form.Get <long>("toOriginalUserId", 0);

            microblogService.Forward(microblog, isCommnet, isCommentOriginal, toUserId, toOriginalUserId);


            //reply:已修改

            return(Json(new StatusMessageData(StatusMessageType.Success, "转发成功!")));
        }
Ejemplo n.º 2
0
        public ActionResult Comment(MicroblogCommentEditModel model)
        {
            string message = string.Empty;

            if (ModelState.HasBannedWord(out message))
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, message)));
            }

            IUser currentUser = UserContext.CurrentUser;
            long  userId      = microblogService.Get(model.CommentedObjectId).UserId;

            //被评论用户的隐私判断

            if (!privacyService.Validate(userId, currentUser != null ? currentUser.UserId : 0, PrivacyItemKeys.Instance().Comment()))
            {
                return(Json(new StatusMessageData(StatusMessageType.Hint, "该用户不允许你评论他的内容!")));
            }

            CommentService commentService = new CommentService();

            if (model.IsValidate)
            {
                Comment comment = model.AsComment();

                if (comment.ParentId != 0)
                {
                    Comment parentComment = commentService.Get(comment.ParentId);
                    if (parentComment != null)
                    {
                        comment.IsPrivate = parentComment.IsPrivate ? true : comment.IsPrivate;
                    }
                }

                if (commentService.Create(comment))
                {
                    if (model.CommentOriginalAuthor)
                    {
                        MicroblogEntity entity = microblogService.Get(comment.CommentedObjectId);


                        if (entity != null)
                        {
                            Comment originalAuthorComment = model.AsComment();
                            entity = entity.OriginalMicroblog;
                            if (entity != null)
                            {
                                originalAuthorComment.ToUserId          = entity.UserId;
                                originalAuthorComment.ToUserDisplayName = entity.User.DisplayName;
                                originalAuthorComment.CommentedObjectId = entity.MicroblogId;
                                commentService.Create(originalAuthorComment);
                            }
                        }
                    }
                    if (model.ForwardMicrobo)
                    {
                        MicroblogEntity microblogEntity = microblogService.Get(model.CommentedObjectId);
                        if (microblogEntity != null)
                        {
                            MicroblogEntity microblog = MicroblogEntity.New();
                            microblog.Body         = "转发微博";
                            microblog.Author       = currentUser.DisplayName;
                            microblog.UserId       = currentUser.UserId;
                            microblog.OwnerId      = currentUser.UserId;
                            microblog.TenantTypeId = TenantTypeIds.Instance().User();

                            microblog.ForwardedMicroblogId = microblogEntity.MicroblogId;
                            microblog.OriginalMicroblogId  = microblogEntity.OriginalMicroblogId > 0 ? microblogEntity.OriginalMicroblogId : microblog.ForwardedMicroblogId;

                            long toUserId = microblog.UserId;

                            MicroblogEntity entity           = microblogService.Get(microblog.OriginalMicroblogId);
                            long            toOriginalUserId = entity == null ? 0 : entity.UserId;

                            microblogService.Forward(microblog, false, false, toUserId, toOriginalUserId);
                        }
                    }
                    return(Json(new { commentid = comment.Id }));
                }
            }
            WebUtility.SetStatusCodeForError(Response);
            return(Json(new StatusMessageData(StatusMessageType.Error, "创建留言失败了!")));
        }