Exemplo n.º 1
0
 private static IScene[] SceneStackWithPresenter(TalkingStickMode mode, string presenterId)
 {
     return(new IScene[]
     {
         new TalkingStickScene(mode), new PresenterScene(presenterId), new ActiveSpeakerScene(),
     });
 }
Exemplo n.º 2
0
        private async Task <Participant> PrepareTalkingStick(TalkingStickMode mode)
        {
            // arrange
            await Mediator.Send(new OpenConferenceRequest(ConferenceId));

            await JoinParticipant(TestData.Sven);

            var talkingStickScene = new TalkingStickScene(mode);

            // act
            await Mediator.Send(new SetSceneRequest(ConferenceId, DefaultRoomId, talkingStickScene));

            return(TestData.Sven.Participant);
        }
Exemplo n.º 3
0
        private async ValueTask ElectNewCurrentSpeaker(string conferenceId, string roomId, SynchronizedRooms rooms,
                                                       TalkingStickMode mode)
        {
            if (mode == TalkingStickMode.Queue)
            {
                var nextSpeaker = await _repository.Dequeue(conferenceId, roomId);

                if (nextSpeaker == null)
                {
                    return;
                }

                if (!CheckParticipantIsInRoom(nextSpeaker.Value, roomId, rooms))
                {
                    await ElectNewCurrentSpeaker(conferenceId, roomId, rooms, mode);

                    return;
                }

                await _repository.SetCurrentSpeakerAndRemoveFromQueue(nextSpeaker.Value, roomId);
            }
        }