コード例 #1
0
ファイル: CommentController.cs プロジェクト: yuanbosdu/voat
        public async Task <ActionResult> DeleteComment(int commentId)
        {
            var commentToDelete = _db.Comments.Find(commentId);

            if (commentToDelete != null && !commentToDelete.IsDeleted)
            {
                var commentSubverse = commentToDelete.Submission.Subverse;

                // delete comment if the comment author is currently logged in user
                if (commentToDelete.UserName == User.Identity.Name)
                {
                    commentToDelete.IsDeleted = true;
                    commentToDelete.Content   = "deleted by author at " + DateTime.Now;
                    await _db.SaveChangesAsync();
                }

                // delete comment if delete request is issued by subverse moderator
                else if (UserHelper.IsUserSubverseModerator(User.Identity.Name, commentSubverse))
                {
                    // notify comment author that his comment has been deleted by a moderator
                    MesssagingUtility.SendPrivateMessage(
                        "Voat",
                        commentToDelete.UserName,
                        "Your comment has been deleted by a moderator",
                        "Your [comment](/v/" + commentSubverse + "/comments/" + commentToDelete.SubmissionID + "/" + commentToDelete.ID + ") has been deleted by: " +
                        "/u/" + User.Identity.Name + " on: " + DateTime.Now + "  " + Environment.NewLine +
                        "Original comment content was: " + Environment.NewLine +
                        "---" + Environment.NewLine +
                        commentToDelete.Content
                        );

                    commentToDelete.IsDeleted = true;

                    // move the comment to removal log
                    var removalLog = new CommentRemovalLog
                    {
                        CommentID    = commentToDelete.ID,
                        Moderator    = User.Identity.Name,
                        Reason       = "This feature is not yet implemented",
                        CreationDate = DateTime.Now
                    };

                    _db.CommentRemovalLogs.Add(removalLog);

                    commentToDelete.Content = "deleted by a moderator at " + DateTime.Now;
                    await _db.SaveChangesAsync();
                }
            }
            if (Request.IsAjaxRequest())
            {
                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            var url = Request.UrlReferrer.AbsolutePath;

            return(Redirect(url));
        }
コード例 #2
0
        public async Task <ActionResult> DeleteComment(int commentId)
        {
            var commentToDelete = _db.Comments.Find(commentId);

            if (commentToDelete != null)
            {
                var commentSubverse = commentToDelete.Message.Subverse;

                // delete comment if the comment author is currently logged in user
                if (commentToDelete.Name == User.Identity.Name)
                {
                    commentToDelete.Name           = "deleted";
                    commentToDelete.CommentContent = "deleted by author at " + DateTime.Now;
                    await _db.SaveChangesAsync();
                }

                // delete comment if delete request is issued by subverse moderator
                else if (Utils.User.IsUserSubverseAdmin(User.Identity.Name, commentSubverse) || Utils.User.IsUserSubverseModerator(User.Identity.Name, commentSubverse))
                {
                    // notify comment author that his comment has been deleted by a moderator
                    MesssagingUtility.SendPrivateMessage(
                        "Voat",
                        commentToDelete.Name,
                        "Your comment has been deleted by a moderator",
                        "Your [comment](/v/" + commentSubverse + "/comments/" + commentToDelete.MessageId + "/" + commentToDelete.Id + ") has been deleted by: " +
                        "/u/" + User.Identity.Name + " on: " + DateTime.Now + "  " + Environment.NewLine +
                        "Original comment content was: " + Environment.NewLine +
                        "---" + Environment.NewLine +
                        commentToDelete.CommentContent
                        );

                    commentToDelete.Name = "deleted";

                    // move the comment to removal log
                    var removalLog = new CommentRemovalLog
                    {
                        CommentId        = commentToDelete.Id,
                        Moderator        = User.Identity.Name,
                        ReasonForRemoval = "This feature is not yet implemented",
                        RemovalTimestamp = DateTime.Now
                    };

                    _db.CommentRemovalLogs.Add(removalLog);

                    commentToDelete.CommentContent = "deleted by a moderator at " + DateTime.Now;
                    await _db.SaveChangesAsync();
                }
            }

            var url = Request.UrlReferrer.AbsolutePath;

            return(Redirect(url));
        }
コード例 #3
0
ファイル: CommentController.cs プロジェクト: rnand/voat
        public async Task<ActionResult> DeleteComment(int commentId)
        {
            var commentToDelete = _db.Comments.Find(commentId);

            if (commentToDelete != null && !commentToDelete.IsDeleted)
            {
                var commentSubverse = commentToDelete.Submission.Subverse;

                // delete comment if the comment author is currently logged in user
                if (commentToDelete.UserName == User.Identity.Name)
                {
                    commentToDelete.IsDeleted = true;
                    commentToDelete.Content = "deleted by author at " + DateTime.Now;
                    await _db.SaveChangesAsync();
                }

                // delete comment if delete request is issued by subverse moderator
                else if (UserHelper.IsUserSubverseModerator(User.Identity.Name, commentSubverse))
                {
                    // notify comment author that his comment has been deleted by a moderator
                    MesssagingUtility.SendPrivateMessage(
                        "Voat",
                        commentToDelete.UserName,
                        "Your comment has been deleted by a moderator",
                        "Your [comment](/v/" + commentSubverse + "/comments/" + commentToDelete.SubmissionID + "/" + commentToDelete.ID + ") has been deleted by: " +
                        "/u/" + User.Identity.Name + " on: " + DateTime.Now + "  " + Environment.NewLine +
                        "Original comment content was: " + Environment.NewLine +
                        "---" + Environment.NewLine +
                        commentToDelete.Content
                        );

                    commentToDelete.IsDeleted = true;

                    // move the comment to removal log
                    var removalLog = new CommentRemovalLog
                    {
                        CommentID = commentToDelete.ID,
                        Moderator = User.Identity.Name,
                        Reason = "This feature is not yet implemented",
                        CreationDate = DateTime.Now
                    };

                    _db.CommentRemovalLogs.Add(removalLog);

                    commentToDelete.Content = "deleted by a moderator at " + DateTime.Now;
                    await _db.SaveChangesAsync();
                }
            }
            if (Request.IsAjaxRequest()) 
            {
                return new HttpStatusCodeResult(HttpStatusCode.OK);
            }
            var url = Request.UrlReferrer.AbsolutePath;
            return Redirect(url);
        }