private JsonResult UpdateAffinityCnt(CommentAffinity model)
        {
            var user = CurrentUser;

            model.UserId   = user.UserId;
            model.UserName = user.FullName;
            var aff = _db.CommentAffinities.SingleOrDefault(c => c.UserId == model.UserId && c.DiscussionCommentId == model.DiscussionCommentId);

            if (aff == null)
            {
                _db.CommentAffinities.Add(model);
                _db.SaveChanges();
            }
            else
            {
                aff.Status           = model.Status;
                aff.TimeStamp        = aff.TimeStamp;
                _db.Entry(aff).State = System.Data.EntityState.Modified;
                _db.SaveChanges();
            }
            var comment = _db.DiscussionComments
                          .Include(c => c.Affinities)
                          .Single(d => d.DiscussionCommentId == model.DiscussionCommentId);
            var json = new
            {
                agree     = comment.AgreeCnt,
                disagree  = comment.DisagreeCnt,
                offensive = comment.OffensiveCnt,
            };

            return(Json(json));
        }
 public JsonResult UpdateAffinity(CommentAffinity model)
 {
     if (model.Status == AffinityStatus.Delete)
     {
         return(DeleteComment(model));
     }
     else
     {
         return(UpdateAffinityCnt(model));
     }
 }
        private JsonResult DeleteComment(CommentAffinity model)
        {
            var comment = _db.DiscussionComments.Find(model.DiscussionCommentId);

            comment.IsDeleted        = !comment.IsDeleted;
            _db.Entry(comment).State = System.Data.EntityState.Modified;
            _db.SaveChanges();
            var json = new
            {
                deleted = comment.IsDeleted ? "Undo Hide" : "Hide",
            };

            return(Json(json));
        }