Example #1
0
        public IActionResult AddFeedbackForUser(Guid userId, [FromBody] FeedbackForCreationDto feedback)
        {
            try
            {
                if (!_userRepository.UserExists(userId))
                {
                    return(NotFound(new { message = $"User {userId} does not exist" }));
                }

                var feedbackEntity = _mapper.Map <Feedback>(feedback);

                _feedbackRepository.AddFeedbackForUser(userId, feedbackEntity);

                if (!_feedbackRepository.Save())
                {
                    throw new Exception($"Adding a feedback for user {userId} failed on save.");
                }

                var feedbackToReturn = _mapper.Map <FeedbackDto>(feedbackEntity);

                return(CreatedAtRoute("GetFeedbackForUser", new { userId = userId, id = feedbackToReturn.Id }, feedbackToReturn));
            }
            catch (AppException ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }