public async Task should_return_not_found_if_endpoint_is_not_found() { var request = new PrivateVideoEndpointConsultationRequest { ConferenceId = _testConference.Id, EndpointId = Guid.NewGuid() }; var result = await _controller.CallVideoEndpointAsync(request); var actionResult = result.As <NotFoundObjectResult>(); actionResult.Should().NotBeNull(); }
public async Task should_return_accepted_request_is_successful() { var request = new PrivateVideoEndpointConsultationRequest { ConferenceId = _testConference.Id, EndpointId = _testConference.Endpoints.First(x => !string.IsNullOrWhiteSpace(x.DefenceAdvocateUsername)) .Id }; var result = await _controller.CallVideoEndpointAsync(request); var actionResult = result.As <AcceptedResult>(); actionResult.Should().NotBeNull(); }
public async Task should_return_not_found_if_defence_advocate_is_not_found() { var cp = new ClaimsPrincipalBuilder().WithRole(AppRoles.RepresentativeRole) .WithUsername("*****@*****.**").Build(); _controller = SetupControllerWithClaims(cp); var request = new PrivateVideoEndpointConsultationRequest { ConferenceId = _testConference.Id, EndpointId = _testConference.Endpoints.First(x => !string.IsNullOrWhiteSpace(x.DefenceAdvocateUsername)) .Id }; var result = await _controller.CallVideoEndpointAsync(request); var actionResult = result.As <NotFoundObjectResult>(); actionResult.Should().NotBeNull(); }
public async Task <IActionResult> CallVideoEndpointAsync(PrivateVideoEndpointConsultationRequest request) { _logger.LogDebug("CallVideoEndpoint"); var username = User.Identity.Name?.ToLower().Trim(); var conference = await GetConference(request.ConferenceId); var defenceAdvocate = conference.Participants.SingleOrDefault(x => x.Username.Trim().Equals(username, StringComparison.CurrentCultureIgnoreCase)); if (defenceAdvocate == null) { return(NotFound($"Defence advocate does not exist in conference {request.ConferenceId}")); } var endpoint = conference.Endpoints.SingleOrDefault(x => x.Id == request.EndpointId); if (endpoint == null) { return(NotFound($"No endpoint id {request.EndpointId} exists")); } try { await _videoApiClient.StartPrivateConsultationWithEndpointAsync(new EndpointConsultationRequest { Conference_id = request.ConferenceId, Endpoint_id = endpoint.Id, Defence_advocate_id = defenceAdvocate.Id }); } catch (VideoApiException ex) { _logger.LogError(ex, $"Unable to start endpoint private consultation"); return(StatusCode(ex.StatusCode, ex.Response)); } return(Accepted()); }