示例#1
0
 public static FeedbackMessage ToFeedbackMessage(this FeedbackMessageAddDTO model, Feedback feedback, User author)
 {
     return(new FeedbackMessage
     {
         Author = author,
         Text = model.Text,
         Feedback = feedback,
         CreatedBy = author.Id
     });
 }
示例#2
0
        public async Task <IActionResult> AddFeedbackMessage(FeedbackMessageAddDTO model)
        {
            try
            {
                var data = await _feedbackService.AddFeedbackMessageAsync(model);

                return(Ok(data));
            }
            catch (UnauthorizedAccessException)
            {
                return(Unauthorized());
            }
            catch (Exception e)
            {
                return(BadRequest(new { e.Message }));
            }
        }
示例#3
0
        public async Task <FeedbackMessageReturnDTO> AddFeedbackMessageAsync(FeedbackMessageAddDTO model)
        {
            var idClaim = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;

            if (!long.TryParse(idClaim, out var ownerId))
            {
                throw new UnauthorizedAccessException();
            }

            var creator = await _userRepository.GetByIdAsync(ownerId);

            var feedback = await _feedbackRepository.GetByIdAsync(model.FeedbackId, feedback1 => feedback1.Messages);

            var newFeedbackMessage = model.ToFeedbackMessage(feedback, creator);

            feedback.Messages.Add(newFeedbackMessage);
            await _feedbackRepository.UpdateAsync(feedback);

            return(newFeedbackMessage.ToFeedbackMessageReturnDTO());
        }