public async Task <IActionResult> CreateMessage(int userId, [FromBody] MessageForCreationViewModel messageForCreationViewModel) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } messageForCreationViewModel.SenderId = userId; var user = await repo.GetUserByID(userId); var reciptientId = await repo.GetUserByID(messageForCreationViewModel.RecipientId); if (reciptientId == null) { return(BadRequest("Could not find user")); } var message = mapper.Map <Message>(messageForCreationViewModel); repo.Add(message); if (await repo.SaveAll()) { var messageToReturn = mapper.Map <MessageToReturnViewModel>(message); return(CreatedAtRoute("GetMessage", new { userId = userId, MessageId = message.Id }, messageToReturn)); } throw new Exception("Creating the message failed on save"); }
public async Task <IActionResult> CreateMassage(int userId, MessageForCreationViewModel messageForCreationVM) { var sender = await _repo.GetUser(userId); if (sender.Id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } messageForCreationVM.SenderId = userId; var recipient = await _repo.GetUser(messageForCreationVM.RecipientId); if (recipient == null) { return(BadRequest("Could not find user")); } var message = _mapper.Map <Message>(messageForCreationVM); _repo.add(message); if (await _repo.SaveAll()) { var messageToReturn = _mapper.Map <MessageToReturnViewModel>(message); return(CreatedAtRoute("GetMessage", new { id = message.Id }, messageToReturn)); } throw new Exception("Creating message failed on save"); }