public async Task <IActionResult> LeaveConsultationAsync(LeavePrivateConsultationRequest request) { var participant = new Participant(); try { var conference = await GetConference(request.ConferenceId); participant = conference.Participants?.SingleOrDefault(x => x.Id == request.ParticipantId); if (participant == null) { return(NotFound()); } var leaveConsultationRequestMapper = _mapperFactory.Get <LeavePrivateConsultationRequest, LeaveConsultationRequest>(); var mappedRequest = leaveConsultationRequestMapper.Map(request); await _videoApiClient.LeaveConsultationAsync(mappedRequest); return(NoContent()); } catch (VideoApiException e) { if (participant != null) { _logger.LogError(e, "Participant: {Username} was not able to leave the private consultation. An error occured", participant.Username); } else { _logger.LogError(e, "Invalid participant"); } return(StatusCode(e.StatusCode, e.Response)); } }
public static LeaveConsultationRequest MapToLeaveConsultationRequest(LeavePrivateConsultationRequest request) { return(new LeaveConsultationRequest { Conference_id = request.ConferenceId, Participant_id = request.ParticipantId }); }
public async Task <IActionResult> LeavePrivateConsultationAsync(LeavePrivateConsultationRequest 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 = LeavePrivateConsultationRequestMapper.MapToLeaveConsultationRequest(request); await _videoApiClient.LeavePrivateConsultationAsync(mappedRequest); return(NoContent()); } catch (VideoApiException e) { return(StatusCode(e.StatusCode, e.Response)); } }