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());
            }
        }
Example #2
0
        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));
        }
Example #3
0
        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();
        }