public static FeedbackMessage ToFeedbackMessage(this FeedbackMessageAddDTO model, Feedback feedback, User author) { return(new FeedbackMessage { Author = author, Text = model.Text, Feedback = feedback, CreatedBy = author.Id }); }
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 })); } }
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()); }