public IActionResult CreateComment(int cardId, [FromBody] CommentForCreationDto comment) { if (comment == null) { return(BadRequest()); } if (comment.User == comment.Description) { ModelState.AddModelError("Desctiption", "The provided Description should be different from the User."); } if (!ModelState.IsValid) { return(BadRequest()); } if (!_cardRepository.CardExists(cardId)) { return(NotFound()); } var finalComment = Mapper.Map <Comment>(comment); _cardRepository.AddComment(cardId, finalComment); if (!_cardRepository.Save()) { return(StatusCode(500, "A problem happened while handling your request")); } var createCommentToReturn = Mapper.Map <CommentDto>(finalComment); return(CreatedAtRoute("GetComment", new { cardId = cardId, commentId = createCommentToReturn.Id }, createCommentToReturn)); }