예제 #1
0
        public async ValueTask <IReadOnlyList <Participant> > GetParticipantsOfRoom(string conferenceId, string roomId)
        {
            var key        = GetRoomMappingKey(conferenceId);
            var hashValues = await _database.HashGetAllAsync(key);

            return(hashValues.Where(x => x.Value == roomId).Select(x => new Participant(conferenceId, x.Key)).ToList());
        }
예제 #2
0
        public async ValueTask <IReadOnlyDictionary <string, PollAnswerWithKey> > DeletePollAnswers(string conferenceId,
                                                                                                    string pollId)
        {
            var key = GetPollAnswersKey(conferenceId, pollId);

            using var transaction = _database.CreateTransaction();
            var answersTask = _database.HashGetAllAsync <PollAnswerWithKey>(key);

            _ = transaction.KeyDeleteAsync(key);

            await transaction.ExecuteAsync();

            return((await answersTask)!);
        }
예제 #3
0
        public ValueTask <IReadOnlyDictionary <string, ParticipantMetadata> > GetParticipantsOfConference(
            string conferenceId)
        {
            var key = GetKey(conferenceId);

            return(_database.HashGetAllAsync <ParticipantMetadata>(key) !);
        }
        public async ValueTask <Dictionary <string, JValue> > GetPermissions(Participant participant)
        {
            var redisKey   = GetPermissionsKey(participant);
            var dictionary = await _database.HashGetAllAsync(redisKey);

            return(dictionary.ToDictionary(x => x.Key, x => (JValue)JToken.Parse(x.Value)));
        }
        public async ValueTask <IEnumerable <Participant> > GetParticipantsOfConference(string conferenceId)
        {
            var conferenceToParticipantsKey = DatabaseKeyBuilder.ForProperty(CONFERENCE_TO_PARTICIPANTS_KEY)
                                              .ForConference(conferenceId).ToString();

            return((await _database.HashGetAllAsync(conferenceToParticipantsKey)).Keys.Select(participantId =>
                                                                                              new Participant(conferenceId, participantId)));
        }
        FetchConferenceTemporaryPermissions(string conferenceId)
        {
            var redisKey = GetKey(conferenceId);

            return((await _redisDatabase.HashGetAllAsync <IReadOnlyDictionary <string, JValue> >(redisKey)) !);
        }
        public async ValueTask <IReadOnlyDictionary <string, EquipmentConnection> > GetConnections(Participant participant)
        {
            var key = GetKey(participant);

            return((await _database.HashGetAllAsync <EquipmentConnection>(key)) !);
        }
        public async ValueTask <IReadOnlyDictionary <string, IReadOnlyList <string>?> > GetOfConference(string conferenceId)
        {
            var key = GetKey(conferenceId);

            return(await _database.HashGetAllAsync <IReadOnlyList <string> >(key));
        }