public async Task <IActionResult> UpdateConferenceAsync(UpdateConferenceRequest request) { _logger.LogDebug("UpdateConference"); var query = new GetNonClosedConferenceByHearingRefIdQuery(request.HearingRefId); var conference = await _queryHandler.Handle <GetNonClosedConferenceByHearingRefIdQuery, Conference>(query); if (conference == null) { _logger.LogWarning("Unable to find conference with hearing id {HearingRefId}", request.HearingRefId); return(NotFound()); } var endpointDtos = conference.GetEndpoints().Select(EndpointMapper.MapToEndpoint); await _videoPlatformService.UpdateVirtualCourtRoomAsync(conference.Id, request.AudioRecordingRequired, endpointDtos); try { var command = new UpdateConferenceDetailsCommand(request.HearingRefId, request.CaseNumber, request.CaseType, request.CaseName, request.ScheduledDuration, request.ScheduledDateTime, request.HearingVenueName, request.AudioRecordingRequired); await _commandHandler.Handle(command); return(Ok()); } catch (ConferenceNotFoundException) { return(NotFound()); } }
public void Should_throw_exception_when_conference_does_not_exist() { var hearingRefId = Guid.NewGuid(); var command = new UpdateConferenceDetailsCommand(hearingRefId, "caseNo", "caseType", "caseName", 10, DateTime.Today, "MyVenue", false); Assert.ThrowsAsync <ConferenceNotFoundException>(() => _handler.Handle(command)); }
public async Task Should_update_conference_details() { var seededConference = await TestDataManager.SeedConference(); _conferenceId = seededConference.Id; var hearingRefId = seededConference.HearingRefId; var duration = seededConference.ScheduledDuration + 10; var scheduledDateTime = seededConference.ScheduledDateTime.AddDays(1); var command = new UpdateConferenceDetailsCommand(hearingRefId, seededConference.CaseNumber, seededConference.CaseType, seededConference.CaseName, duration, scheduledDateTime, "MyVenue", true); await _handler.Handle(command); var conference = _conferenceByIdHandler.Handle(new GetConferenceByIdQuery(seededConference.Id)).Result; conference.ScheduledDuration.Should().Be(duration); conference.ScheduledDateTime.Should().Be(scheduledDateTime); conference.ScheduledDateTime.Should().Be(scheduledDateTime); seededConference.AudioRecordingRequired.Should().BeFalse(); conference.AudioRecordingRequired.Should().BeTrue(); }