private void SerialiseRespondToAdminConsultationRequest(AdminConsultationRequest request) { _context.Uri = ConsultationEndpoints.RespondToAdminConsultationRequest; _context.HttpMethod = HttpMethod.Post; var jsonBody = RequestHelper.Serialise(request); _context.HttpContent = new StringContent(jsonBody, Encoding.UTF8, "application/json"); }
private AdminConsultationRequest SetupRespondToAdminConsultationRequest() { var request = new AdminConsultationRequest(); var participants = _context.Test.Conference.GetParticipants().Where(x => x.UserRole == UserRole.Individual || x.UserRole == UserRole.Representative).ToList(); request.ConferenceId = _context.Test.Conference.Id; request.ParticipantId = participants[0].Id; request.Answer = ConsultationAnswer.Accepted; request.ConsultationRoom = RoomType.ConsultationRoom1; return(request); }
public async Task <IActionResult> RespondToAdminConsultationRequestAsync(AdminConsultationRequest request) { _logger.LogDebug("RespondToAdminConsultationRequest"); const string modelErrorMessage = "Response to consultation is missing"; var getConferenceByIdQuery = new GetConferenceByIdQuery(request.ConferenceId); var conference = await _queryHandler.Handle <GetConferenceByIdQuery, Conference>(getConferenceByIdQuery); if (!request.Answer.HasValue) { ModelState.AddModelError(nameof(request.Answer), modelErrorMessage); return(BadRequest(ModelState)); } if (conference == null) { _logger.LogWarning("Unable to find conference"); return(NotFound()); } var participant = conference.GetParticipants().SingleOrDefault(x => x.Id == request.ParticipantId); if (participant == null) { _logger.LogWarning("Unable to find participant request by id"); return(NotFound()); } if (request.Answer.Value == ConsultationAnswer.Accepted) { await _videoPlatformService.TransferParticipantAsync(conference.Id, participant.Id, participant.GetCurrentRoom(), request.ConsultationRoom); } return(NoContent()); }