Beispiel #1
0
        public async Task Should_Create_ConsultationRoom_If_None_Are_Available()
        {
            _queryHandler
            .Setup(x =>
                   x.Handle <GetAvailableConsultationRoomsByRoomTypeQuery, List <ConsultationRoom> >(It.IsAny <GetAvailableConsultationRoomsByRoomTypeQuery>()))
            .ReturnsAsync(new List <ConsultationRoom>());

            var consultationRoomParams = new CreateConsultationRoomParams
            {
                Room_label_prefix = _request.RoomType.ToString()
            };

            _kinlyApiClient
            .Setup(x => x.CreateConsultationRoomAsync(It.IsAny <string>(), It.IsAny <CreateConsultationRoomParams>()))
            .ReturnsAsync(new CreateConsultationRoomResponse()
            {
                Room_label = "Label"
            });

            var returnedRoom =
                await _consultationService.GetAvailableConsultationRoomAsync(_request.ConferenceId, _request.RoomType.MapToDomainEnum());

            _kinlyApiClient.Verify(x => x.CreateConsultationRoomAsync(It.Is <string>(
                                                                          y => y.Equals(_request.ConferenceId.ToString())), It.Is <CreateConsultationRoomParams>(
                                                                          y => y.Room_label_prefix.Equals(consultationRoomParams.Room_label_prefix))), Times.Once);
            returnedRoom.Should().BeOfType <ConsultationRoom>();
            returnedRoom.Should().NotBeNull();
        }
Beispiel #2
0
        public async Task Should_Create_New_ConsultationRoom()
        {
            var mockCommand = new CreateConsultationRoomCommand(_request.ConferenceId, "Judge", _request.RoomType.MapToDomainEnum(), false);

            _commandHandler.Setup(x => x.Handle(mockCommand));
            var consultationRoomParams = new CreateConsultationRoomParams
            {
                Room_label_prefix = _request.RoomType.ToString()
            };

            _kinlyApiClient
            .Setup(x => x.CreateConsultationRoomAsync(It.IsAny <string>(), It.IsAny <CreateConsultationRoomParams>()))
            .ReturnsAsync(new CreateConsultationRoomResponse()
            {
                Room_label = "Label"
            });

            var returnedRoom =
                await _consultationService.CreateNewConsultationRoomAsync(_request.ConferenceId, _request.RoomType.MapToDomainEnum());

            _kinlyApiClient.Verify(x => x.CreateConsultationRoomAsync(It.Is <string>(
                                                                          y => y.Equals(_request.ConferenceId.ToString())), It.Is <CreateConsultationRoomParams>(
                                                                          y => y.Room_label_prefix.Equals(consultationRoomParams.Room_label_prefix))), Times.Once);
            returnedRoom.Should().BeOfType <ConsultationRoom>();
            returnedRoom.Should().NotBeNull();
        }
Beispiel #3
0
        public async Task <ConsultationRoom> GetAvailableConsultationRoomAsync(Guid conferenceId, VirtualCourtRoomType roomType)
        {
            var query       = new GetAvailableConsultationRoomsByRoomTypeQuery(roomType, conferenceId);
            var listOfRooms = await _queryHandler.Handle <GetAvailableConsultationRoomsByRoomTypeQuery, List <ConsultationRoom> >(query);

            var room = listOfRooms?.FirstOrDefault(x => x.Type.Equals(roomType));

            if (room == null)
            {
                var consultationRoomParams = new CreateConsultationRoomParams
                {
                    Room_label_prefix = roomType.ToString()
                };
                var createConsultationRoomResponse =
                    await CreateConsultationRoomAsync(conferenceId.ToString(),
                                                      consultationRoomParams);

                var createRoomCommand = new CreateConsultationRoomCommand(conferenceId,
                                                                          createConsultationRoomResponse.Room_label,
                                                                          roomType,
                                                                          false);
                await _commandHandler.Handle(createRoomCommand);

                room = new ConsultationRoom(conferenceId, createConsultationRoomResponse.Room_label, roomType, false);
            }

            return(room);
        }
Beispiel #4
0
        private Task <CreateConsultationRoomResponse> CreateConsultationRoomAsync(string virtualCourtRoomId,
                                                                                  CreateConsultationRoomParams createConsultationRoomParams)
        {
            _logger.LogTrace(
                "Creating a consultation for VirtualCourtRoomId: {VirtualCourtRoomId} with prefix {CreateConsultationRoomParamsPrefix}",
                virtualCourtRoomId, createConsultationRoomParams.Room_label_prefix);

            return(_kinlyApiClient.CreateConsultationRoomAsync(virtualCourtRoomId, createConsultationRoomParams));
        }
Beispiel #5
0
        public async Task <ConsultationRoom> CreateNewConsultationRoomAsync(Guid conferenceId, VirtualCourtRoomType roomType = VirtualCourtRoomType.Participant, bool locked = false)
        {
            var consultationRoomParams = new CreateConsultationRoomParams
            {
                Room_label_prefix = roomType.ToString()
            };
            var createConsultationRoomResponse = await CreateConsultationRoomAsync(conferenceId.ToString(), consultationRoomParams);

            var createRoomCommand = new CreateConsultationRoomCommand(conferenceId, createConsultationRoomResponse.Room_label, roomType, locked);
            await _commandHandler.Handle(createRoomCommand);

            var room = new ConsultationRoom(conferenceId, createConsultationRoomResponse.Room_label, roomType, locked);

            return(room);
        }