Exemplo n.º 1
0
 public Task <SuccessOrError <Unit> > KickParticipant(KickParticipantRequestDto message)
 {
     var(conferenceId, _) = GetContextParticipant();
     return(GetInvoker().Create(new KickParticipantRequest(new Participant(conferenceId, message.ParticipantId)))
            .ValidateObject(message).RequirePermissions(DefinedPermissions.Conference.CanKickParticipant)
            .ConferenceMustBeOpen().Send());
 }
Exemplo n.º 2
0
        public async Task KickParticipant_ParticipantJoined_SendNotificationToParticipant()
        {
            // arrange
            var(connection, conference) = await ConnectToOpenedConference();

            var userToBeKicked           = CreateUser();
            var userToBeKickedConnection = await ConnectUserToConference(userToBeKicked, conference);

            var autoResetEvent = new AsyncAutoResetEvent(false);

            userToBeKickedConnection.Hub.On(CoreHubMessages.OnRequestDisconnect,
                                            (RequestDisconnectDto _) => autoResetEvent.Set());

            // act
            var request = new KickParticipantRequestDto(userToBeKicked.Sub);
            var result  =
                await connection.Hub.InvokeAsync <SuccessOrError <Unit> >(nameof(CoreHub.KickParticipant), request);

            // assert
            AssertSuccess(result);

            await autoResetEvent.WaitTimeoutAsync();
        }