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