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()); }
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(); }