示例#1
0
        public async Task <IActionResult> DeleteThread(int threadId)
        {
            Thread threadToDelete = await _Repo.Threads.FirstOrDefaultAsync(x => x.Id == threadId);

            if (threadToDelete == null)
            {
                return(BadRequest("Thread does not exist"));
            }

            var userId = GetUserId();

            if (await UserExists(userId) != true)
            {
                return(Unauthorized());
            }

            if (IsAdmin() != true || threadToDelete.AuthorId != int.Parse(userId))
            {
                return(Unauthorized());
            }

            _Repo.Delete(threadToDelete);
            await _Repo.SaveChangesAsync();

            return(Ok("Thread successfully deleted"));
        }
        public async Task <IActionResult> DeletePost(int postId)
        {
            var userId = GetUserId();

            // Does User Exist?
            if (await UserExists(userId) != true)
            {
                return(Unauthorized());
            }

            Post postToDelete = await _Repo.Posts.FirstOrDefaultAsync(x => x.Id == postId);

            // Does Post Exist?
            if (postToDelete == null)
            {
                return(BadRequest("Post does not exist"));
            }

            // Is User an Admin or the Post's Owner?
            if (IsAdmin() || postToDelete.AuthorId != int.Parse(userId))
            {
                return(Unauthorized());
            }

            _Repo.Delete(postToDelete);
            await _Repo.SaveChangesAsync();

            return(Ok("Post successfully deleted"));
        }
        public async Task <IActionResult> DeleteSubforum(int subforumId)
        {
            Subforum forumToDelete = await _Repo.Subforums.FirstOrDefaultAsync(x => x.Id == subforumId);

            _Repo.Delete(forumToDelete);
            await _Repo.SaveChangesAsync();

            return(await GetForumsAsync());
        }