private static IScene[] SceneStackWithPresenter(TalkingStickMode mode, string presenterId) { return(new IScene[] { new TalkingStickScene(mode), new PresenterScene(presenterId), new ActiveSpeakerScene(), }); }
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); }
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); } }