public async Task <IActionResult> UpdateEndpointAsync(Guid hearingId, Guid endpointId, UpdateEndpointRequest updateEndpointRequest) { if (hearingId == Guid.Empty) { ModelState.AddModelError(nameof(hearingId), $"Please provide a valid {nameof(hearingId)}"); return(BadRequest(ModelState)); } var result = new UpdateEndpointRequestValidation().Validate(updateEndpointRequest); if (!result.IsValid) { ModelState.AddFluentValidationErrors(result.Errors); return(BadRequest(ModelState)); } try { var hearing = await _queryHandler.Handle <GetHearingByIdQuery, VideoHearing>(new GetHearingByIdQuery(hearingId)); if (hearing == null) { throw new HearingNotFoundException(hearingId); } var defenceAdvocate = DefenceAdvocateHelper.CheckAndReturnDefenceAdvocate(updateEndpointRequest.DefenceAdvocateUsername, hearing.GetParticipants()); var command = new UpdateEndPointOfHearingCommand(hearingId, endpointId, updateEndpointRequest.DisplayName, defenceAdvocate); await _commandHandler.Handle(command); var endpoint = hearing.GetEndpoints().SingleOrDefault(x => x.Id == endpointId); if (endpoint != null && hearing.Status == BookingStatus.Created) { await _eventPublisher.PublishAsync(new EndpointUpdatedIntegrationEvent(hearingId, endpoint.Sip, updateEndpointRequest.DisplayName, defenceAdvocate?.Person.Username)); } } catch (HearingNotFoundException exception) { return(NotFound(exception.Message)); } catch (EndPointNotFoundException exception) { return(NotFound(exception.Message)); } return(NoContent()); }
public void OneTimeSetUp() { _validator = new UpdateEndpointRequestValidation(); }