public async Task <IActionResult> RespondToAdminConsultationRequestAsync(PrivateAdminConsultationRequest request) { try { var conference = await GetConference(request.ConferenceId); var participant = conference.Participants?.SingleOrDefault(x => x.Id == request.ParticipantId); if (participant == null) { return(NotFound()); } var mappedRequest = PrivateAdminConsultationRequestMapper.MapToAdminConsultationRequest(request); await _videoApiClient.RespondToAdminConsultationRequestAsync(mappedRequest); if (request.Answer != ConsultationAnswer.Accepted) { return(NoContent()); } var roomType = Enum.Parse <RoomType>(request.ConsultationRoom.ToString()); var answer = Enum.Parse <ConsultationAnswer>(request.Answer.ToString()); await _hubContext.Clients.Group(participant.Username.ToLowerInvariant()).AdminConsultationMessage (conference.Id, roomType, participant.Username.ToLowerInvariant(), answer); return(NoContent()); } catch (VideoApiException e) { return(StatusCode(e.StatusCode, e.Response)); } }
public void should_map_to_admin_consultation_request(ConsultationAnswer answer, ApiConsultationRequestAnswer?expectedAnswer) { var request = Builder <PrivateAdminConsultationRequest> .CreateNew() .With(x => x.ConferenceId = Guid.NewGuid()) .With(x => x.ParticipantId = Guid.NewGuid()) .With(x => x.ConsultationRoom = RoomType.ConsultationRoom1) .With(x => x.Answer = answer) .Build(); var result = PrivateAdminConsultationRequestMapper.MapToAdminConsultationRequest(request); result.Conference_id.Should().Be(request.ConferenceId); result.Participant_id.Should().Be(request.ParticipantId); result.Consultation_room.Should().Be(request.ConsultationRoom); result.Answer.Should().Be(answer); }