public JsonResult DeleteAuthor(int userID, string token)
        {
            if (userID == 1 || !CheckToken(token))
            {
                throw new NotSupportedException("Cannot delete the admin");
            }

            try
            {
                var posts = _postRepository.GetPostsByUserID(userID, 1).Select(p => p.PostID).ToList();

                _categoryRepository.DeletePostCategoryMapping(posts);
                _tagRepository.DeleteTagsForsPosts(posts);
                _commentRepository.DeleteCommentsByPostID(posts);
                _postRepository.DeletePostsByUserID(userID);
                _roleRepository.DeleteRolesForUser(userID);
                _userRepository.DeleteUser(userID);
            }
            catch
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
            return(Json(true, JsonRequestBehavior.AllowGet));
        }