示例#1
0
        public async ValueTask <Dictionary <string, SfuParticipantPermissions> > GetPermissions(string conferenceId,
                                                                                                IEnumerable <string> participantIds)
        {
            var permissions = new Dictionary <string, SfuParticipantPermissions>();

            foreach (var participantId in participantIds)
            {
                var participantPermissions =
                    await GetSynchronizedPermissions(new Participant(conferenceId, participantId));

                var sfuPermissions = await SfuPermissionUtils.MapToSfuPermissions(participantPermissions.Permissions);

                permissions.Add(participantId, sfuPermissions);
            }

            return(permissions);
        }
示例#2
0
        public async Task Handle(ParticipantPermissionsUpdatedNotification notification,
                                 CancellationToken cancellationToken)
        {
            var updatedPermissions = new Dictionary <string, SfuParticipantPermissions>();

            foreach (var(participant, permissions) in notification.UpdatedPermissions)
            {
                var sfuPermissions = await SfuPermissionUtils.MapToSfuPermissions(permissions);

                updatedPermissions.Add(participant.Id, sfuPermissions);
            }

            var conferenceId = notification.UpdatedPermissions.First().Key.ConferenceId;
            var updated      = new SfuConferenceInfoUpdate(ImmutableDictionary <string, string> .Empty, updatedPermissions,
                                                           ImmutableList <string> .Empty);

            await _notifier.Update(conferenceId, updated);
        }