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 async Task Should_return_notfound_with_conferencenotfoundexception()
        {
            CommandHandlerMock.Setup(c => c.Handle(It.IsAny <UpdateConferenceDetailsCommand>())).Throws(new ConferenceNotFoundException(Guid.NewGuid()));
            var request = new UpdateConferenceRequest();

            var result = await Controller.UpdateConferenceAsync(request);

            var typedResult = (NotFoundResult)result;

            typedResult.Should().NotBeNull();
            CommandHandlerMock.Verify(c => c.Handle(It.IsAny <UpdateConferenceDetailsCommand>()), Times.Once);
        }
Example #3
0
        public void GivenIHaveAValidUpdateAConferenceRequest(Scenario scenario)
        {
            UpdateConferenceRequest request;

            switch (scenario)
            {
            case Scenario.Valid:
            {
                var scheduledDateTime = _context.Test.Conference.ScheduledDateTime.AddMinutes(1);
                request = new UpdateConferenceRequest
                {
                    CaseName               = _context.Test.Conference.CaseName,
                    ScheduledDateTime      = scheduledDateTime,
                    CaseNumber             = _context.Test.Conference.CaseNumber,
                    HearingRefId           = _context.Test.Conference.HearingRefId,
                    ScheduledDuration      = _context.Test.Conference.ScheduledDuration + 10,
                    CaseType               = _context.Test.Conference.CaseType,
                    AudioRecordingRequired = true
                };
                break;
            }

            case Scenario.Nonexistent:
                request = new UpdateConferenceRequest
                {
                    HearingRefId      = Guid.NewGuid(),
                    CaseName          = "CaseName",
                    ScheduledDateTime = DateTime.Now,
                    ScheduledDuration = 10,
                    CaseType          = "CaseType",
                    CaseNumber        = "CaseNo"
                };
                break;

            case Scenario.Invalid:
                request = new UpdateConferenceRequest();
                break;

            default: throw new ArgumentOutOfRangeException(nameof(scenario), scenario, null);
            }


            _context.Uri        = UpdateConference;
            _context.HttpMethod = HttpMethod.Put;
            var jsonBody = RequestHelper.Serialise(request);

            _context.HttpContent = new StringContent(jsonBody, Encoding.UTF8, "application/json");
        }
Example #4
0
        public void GivenIHaveAnUpdateConferenceRequest()
        {
            var request = new UpdateConferenceRequest
            {
                CaseName               = $"{_context.Test.ConferenceResponse.CaseName} UPDATED",
                CaseNumber             = $"{_context.Test.ConferenceResponse.CaseNumber} UPDATED",
                CaseType               = "Financial Remedy",
                HearingRefId           = _context.Test.ConferenceResponse.HearingId,
                ScheduledDateTime      = DateTime.Now.AddHours(1),
                ScheduledDuration      = 12,
                HearingVenueName       = "MyVenue",
                AudioRecordingRequired = true
            };

            _scenarioContext.Add(UpdatedKey, request);
            _context.Request = _context.Put(UpdateConference, request);
        }
Example #5
0
        public async Task Should_return_notfound_with_no_matching_conference()
        {
            var request = new UpdateConferenceRequest
            {
                HearingRefId = Guid.NewGuid(),
            };

            QueryHandlerMock
            .Setup(x => x.Handle <GetNonClosedConferenceByHearingRefIdQuery, VideoApi.Domain.Conference>(It.IsAny <GetNonClosedConferenceByHearingRefIdQuery>()))
            .ReturnsAsync((VideoApi.Domain.Conference)null);


            var result = await Controller.UpdateConferenceAsync(request);

            var typedResult = (NotFoundResult)result;

            typedResult.Should().NotBeNull();
        }
Example #6
0
        public async Task Should_update_requested_conference_successfully()
        {
            var request = new UpdateConferenceRequest
            {
                HearingRefId      = Guid.NewGuid(),
                CaseName          = "CaseName",
                ScheduledDateTime = DateTime.Now,
                ScheduledDuration = 10,
                CaseType          = "CaseType",
                CaseNumber        = "CaseNo"
            };

            VideoPlatformServiceMock.Setup(v => v.UpdateVirtualCourtRoomAsync(It.IsAny <Guid>(), It.IsAny <bool>(), It.IsAny <List <EndpointDto> >()));

            await Controller.UpdateConferenceAsync(request);

            VideoPlatformServiceMock.Setup(v => v.UpdateVirtualCourtRoomAsync(It.IsAny <Guid>(), It.IsAny <bool>(), It.IsAny <List <EndpointDto> >()));
            CommandHandlerMock.Verify(c => c.Handle(It.IsAny <UpdateConferenceDetailsCommand>()), Times.Once);
        }
Example #7
0
 public Task UpdateConferenceAsync(UpdateConferenceRequest request)
 {
     _logger.LogInformation("Updating conference with hearing id {Hearing}", request.HearingRefId);
     return(_apiClient.UpdateConferenceAsync(request));
 }
Example #8
0
 public Task UpdateConferenceAsync(UpdateConferenceRequest request)
 {
     UpdateConferenceCount++;
     return(Task.FromResult(HttpStatusCode.OK));
 }