示例#1
0
 public ActionResult FlagPost(int id)
 {
     CommentFlag flag = new CommentFlag { CommentID = id, UserID = User.Identity.GetUserId() };
     CommentFlag originalFlag = context.commentFlags.Where(p => p.CommentID == id && p.UserID != flag.UserID).FirstOrDefault();
     if (originalFlag != null)
     {
         originalFlag.Counter++;
         if (originalFlag.Counter >= 5)
         {
             originalFlag.IsRemoved = true;
             Comment comment = context.comments.Where(p => p.Id == id).FirstOrDefault();
             context.comments.Remove(comment);
         }
         flag.Counter = originalFlag.Counter;
         flag.IsRemoved = originalFlag.IsRemoved;
     }
     else
     {
         flag.Counter = 1;
         flag.IsRemoved = false;
         context.commentFlags.Add(flag);
     }
     context.SaveChanges();
     return RedirectToAction("Index");
 }
示例#2
0
        public async Task FlagComment(int commentId, string username)
        {
            var userId = await this.users.UserIdByUsername(username);

            if (userId != 0)
            {
                var commentFlag = new CommentFlag
                {
                    CreatedOn = DateTime.Now,
                    CommentId = commentId,
                    UserId    = userId
                };

                this.commentFlags.Add(commentFlag);
                await this.commentFlags.SaveChangesAsync();

                var comment = await this.comments
                              .All()
                              .Include(c => c.CommentFlags)
                              .Where(c => c.Id == commentId)
                              .FirstOrDefaultAsync();

                if (comment.CommentFlags.Count >= Constants.FlagsNeededToHideComment)
                {
                    comment.IsHidden = true;
                    await this.comments.SaveChangesAsync();
                }
            }
        }