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()); }