Пример #1
0
        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
     });
 }
Пример #3
0
        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));
            }
        }