public async Task <IActionResult> DeleteMessage(int id, int userId) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var messageFromRepo = await _repo.GetMessage(id); if (messageFromRepo.IdSender == userId) { messageFromRepo.SenderDeleted = true; } if (messageFromRepo.RecipientId == userId) { messageFromRepo.RecipientDeleted = true; } if (messageFromRepo.SenderDeleted && messageFromRepo.RecipientDeleted) { _repo.Delete(messageFromRepo); } if (await _repo.SaveAll()) { return(NoContent()); } throw new Exception("Error deleting the message"); }
public async Task <IActionResult> DeleteArticle(int?id, int userId) { var articleFromRepo = await _repo.GetArticle(id.Value); if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value) || (articleFromRepo.AuthorId != userId && !User.IsInRole("Admin"))) { return(Unauthorized()); } foreach (var ar in articleFromRepo.Students) { _repo.Delete(ar); } _repo.Delete(articleFromRepo); if (await _repo.SaveAll()) { return(NoContent()); } throw new Exception("Error deleting the article"); }