Esempio n. 1
0
        public ActionResult SubmitArticleComments(int id, string content)
        {
            if (string.IsNullOrEmpty(content) == true)
            {
                return(Content("评论内容不可为空。"));
            }

            var obj = new article_comments()
            {
                article_id = id,
                comments   = content,
                user_id    = CurrentUser.id,
                user_name  = CurrentUser.name,
                created_dt = DateTime.Now
            };

            ArticleMgr.InsertArticleComments(obj);

            #region 发送消息通知给相关用户(apply user和comments user)
            var temp_user_list = new List <int>();

            var article = ArticleMgr.GetArticle(id);
            if (CurrentUser.id != article.article_apply.apply_user_id) // 不应该通知本人
            {
                var msg = new message()
                {
                    title                 = "文章讨论",
                    message_content       = string.Format("我回复了您发布的文章《{0}》:{1}", article.title, content),
                    message_sender_id     = CurrentUser.id,
                    message_sender_name   = CurrentUser.name,
                    message_receiver_id   = article.article_apply.apply_user_id,
                    message_receiver_name = article.article_apply.apply_user_name,
                };
                SystemMgr.InsertMessage(msg);
                temp_user_list.Add(msg.message_receiver_id);
            }
            foreach (var comments in article.article_comments.Where(t => t.user_id != CurrentUser.id)) // 通知其他用户
            {
                if (temp_user_list.Contains(comments.user_id) == true)                                 // 不重复通知同一个用户(回复多次的)
                {
                    continue;
                }

                var msg2 = new message()
                {
                    title                 = "文章讨论",
                    message_content       = string.Format("我回复您参与讨论的文章《{0}》:{1}", article.title, content),
                    message_sender_id     = CurrentUser.id,
                    message_sender_name   = CurrentUser.name,
                    message_receiver_id   = comments.user_id,
                    message_receiver_name = comments.user_name,
                };
                SystemMgr.InsertMessage(msg2);
                temp_user_list.Add(msg2.message_receiver_id);
            }
            #endregion

            return(Content("OK"));
        }
Esempio n. 2
0
        /// <summary>
        /// 显示学术文章详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Detail(int id)
        {
            ViewBag.CurrentUser = CurrentUser;
            if (CurrentUser != null)
            {
                ViewBag.Collection = AccountMgr.GetUserCollection(CurrentUser.id, ContentType.文章, id);
            }
            var obj = ArticleMgr.GetArticle(id);

            return(View("Detail", obj));
        }