public async Task <IActionResult> DeleteMessage(int id, int userId) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var messageFromRepo = await _messagesService.GetMessage(id); if (messageFromRepo.SenderId == userId) { messageFromRepo.SenderDeleted = true; } if (messageFromRepo.RecipientId == userId) { messageFromRepo.RecipientDeleted = true; } if (messageFromRepo.SenderDeleted && messageFromRepo.RecipientDeleted) { _messagesService.DeleteMessage(messageFromRepo); } if (await _userService.SaveChangesInContext()) { return(NoContent()); } throw new Exception("Error deleting the message!"); }
public async Task <ActionResult> DeleteMessage(DeleteMessageDto deleteMessageDto) { try { var userId = this.User.Claims.First(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value; await _messagesService.DeleteMessage(deleteMessageDto, userId); return(Ok(MessageControllerConstants.YouMessageIsDeleted)); } catch (Exception ex) { _logger.Error(ex); return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task <IActionResult> DeleteMessage(int id) { await _service.DeleteMessage(id, base.GetUserIdFromToken()); return(NoContent()); }