Exemple #1
0
        public ActionResult HF(RemarkReply rep, int pinglunid)
        {
            IReply ir = new RReply();
            //Session["pinglunid"] = pinglunid;
            var t = from o in db.Remarks
                    join b in db.RemarkComments on o.RemarkID equals b.RemarkID
                    where b.RemarkCommentID == pinglunid
                    select o.RemarkID;

            if (ModelState.IsValid)
            {
                rep.RemarkCommentID = pinglunid;
                rep.UserID          = int.Parse(Session["User_id"].ToString());
                //rep.UserID = 1;
                rep.Reply_Content = Request["TextBox2"];
                rep.Reply_Time    = System.DateTime.Now;
                ir.Reply(rep, pinglunid);
                db.SaveChanges();
                return(Content("<script>;alert('回复成功!');history.go(-1)</script>"));
            }
            //return RedirectToAction("Index2","Luntan",new { id=t});
            return(Content("<script>;alert('回复失败!');history.go(-1)</script>"));
        }
        public async Task <JsonResult> Reply(ReplyModel replyModel)
        {
            var currUser = _sessionManager.CurrUser;

            try
            {
                //查询目标用户信息
                if (!await _dbContext.User.AnyAsync(s => s.Id == replyModel.TargetUserId))
                {
                    return(Json(new ApiResult(-1, "回复的用户不存在")));
                }

                RemarkReply remarkReply = new RemarkReply();
                remarkReply.Content      = replyModel.ReplyContent;
                remarkReply.TargetUserId = replyModel.TargetUserId;
                remarkReply.RemarkId     = replyModel.RemarkId;
                remarkReply.UserId       = currUser.Id;
                remarkReply.CreateTime   = DateTime.Now;

                await _dbContext.RemarkReply.AddAsync(remarkReply);

                if (await _dbContext.SaveChangesAsync() > 0)
                {
                    _logger.LogWarning($"用户{currUser.Name}—回复评论—成功");
                    //查询所在文章
                    Article article = await _dbContext.Article.SingleOrDefaultAsync(s => s.Id == replyModel.ArticleId);

                    if (article == null)
                    {
                        _logger.LogWarning($"回复评论时—添加用户消息—查询当前文章—NULL。");
                    }
                    else
                    {
                        if (!article.AllowReply)
                        {
                            return(Json(new ApiResult(-1, "文章禁止回复")));
                        }
                        //添加用户消息
                        UserMessage userMessage = new UserMessage(replyModel.TargetUserId, Configuration["UserMessageTemp:RemarkReply"].Replace("{UserName}", currUser.Name).Replace("{ArticleId}", replyModel.ArticleId.ToString()).Replace("{ArticleTitle}", article.Title).Replace("{ReplyId}", remarkReply.Id.ToString()), (int)UserMessageType.Remark);
                        await _dbContext.UserMessage.AddAsync(userMessage);

                        if (await _dbContext.SaveChangesAsync() <= 0)
                        {
                            _logger.LogWarning($"回复评论—添加用户消息—失败");
                        }
                        else
                        {
                            _logger.LogInformation($"回复评论—添加用户消息—成功");
                        }
                    }
                    return(Json(ApiResultAccessor.Successfully));
                }
                else
                {
                    _logger.LogWarning($"用户{currUser.Name}—回复评论—失败");
                    return(Json(ApiResultAccessor.Unsuccessful));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"用户{currUser.Name},回复评论出错。");
                return(Json(ApiResultAccessor.Exception));
            }
        }