public async ValueTask <IReadOnlyDictionary <string, JValue> > FetchTemporaryPermissions(Participant participant)
        {
            var redisKey = GetKey(participant.ConferenceId);

            return(await _redisDatabase.HashGetAsync <IReadOnlyDictionary <string, JValue> >(redisKey, participant.Id) ??
                   ImmutableDictionary <string, JValue> .Empty);
        }
        public async Task ParticipantJoined_RemoveAndReturnTrue()
        {
            const string participantKey        = "2AFA88F3-50E3-4356-9529-F47A730B25B0";
            const string participantId         = "14FAA2C6-8FAC-46D1-B34C-6916F5D213D7";
            const string conferenceKeyTemplate = "conference:7fa3aba5bfdb4a648294fe9fb5df40dc:*";
            const string conferenceId          = "50DABA18-7F83-4D0D-8FDD-B2ADE18C5FBC";
            const string conferenceKey         = "conference:7fa3aba5bfdb4a648294fe9fb5df40dc:" + conferenceId;
            const string connectionId          = "7996bdfaf063485492974d74e7e3d657";

            // arrange
            await _database.SetAsync(participantKey, conferenceId);

            await _database.HashSetAsync(conferenceKey, participantId, connectionId);

            // act
            var result = await Execute(participantId, participantKey, conferenceKeyTemplate, connectionId);

            // assert
            Assert.True((bool)result);

            var actualConferenceId = await _database.GetAsync(participantKey);

            Assert.Null(actualConferenceId);

            var actualConnectionId = await _database.HashGetAsync(conferenceKey, participantId);

            Assert.Null(actualConnectionId);
        }
        public async Task RoomDoesNotExist_DoNotChangeAndReturnFalse()
        {
            const string roomMappingKey = "8D87925C-96DA-4B7A-9442-1938422B87E3";
            const string roomListKey    = "B9781B02-A5AA-4B10-AE7D-408CC27FC1E6";
            const string participantId  = "EB13BB6A-6693-4644-8578-8A47E21C2DA2";
            const string newRoomId      = "3189C8E6-4C85-4B8F-9C50-EEB51E09B338";
            const string currentRoomId  = "differentRoomId";

            // arrange
            await _database.HashSetAsync(roomListKey, currentRoomId, "something");

            await _database.HashSetAsync(roomMappingKey, participantId, currentRoomId);

            // act
            var result = await Execute(roomMappingKey, roomListKey, participantId, newRoomId);

            // assert
            Assert.False((bool)result);

            var actualMapping = await _database.HashGetAsync(roomMappingKey, participantId);

            Assert.Equal(currentRoomId, actualMapping);
        }
Ejemplo n.º 4
0
        public async ValueTask <ParticipantMetadata?> GetParticipantMetadata(Participant participant)
        {
            var key = GetKey(participant.ConferenceId);

            return(await _database.HashGetAsync <ParticipantMetadata>(key, participant.Id));
        }
Ejemplo n.º 5
0
        public async ValueTask <string?> GetRoomOfParticipant(Participant participant)
        {
            var mappingKey = GetRoomMappingKey(participant.ConferenceId);

            return(await _database.HashGetAsync(mappingKey, participant.Id));
        }
        public ValueTask <EquipmentConnection?> GetConnection(Participant participant, string connectionId)
        {
            var key = GetKey(participant);

            return(_database.HashGetAsync <EquipmentConnection>(key, connectionId));
        }
Ejemplo n.º 7
0
        public async ValueTask <ActiveScene?> GetScene(string conferenceId, string roomId)
        {
            var key = GetSceneKey(conferenceId);

            return(await _database.HashGetAsync <ActiveScene>(key, roomId));
        }
Ejemplo n.º 8
0
        public async ValueTask <bool> IsParticipantJoined(Participant participant, string connectionId)
        {
            var conferenceToParticipantsKey = GetConferenceToParticipantsKey(participant.ConferenceId);

            return(await _database.HashGetAsync(conferenceToParticipantsKey, participant.Id) == connectionId);
        }
Ejemplo n.º 9
0
        public async ValueTask <Poll?> GetPoll(string conferenceId, string pollId)
        {
            var pollsKey = GetPollsKey(conferenceId);

            return(await _database.HashGetAsync <Poll>(pollsKey, pollId));
        }
Ejemplo n.º 10
0
        public ValueTask <string?> Get(Participant participant)
        {
            var key = GetKey(participant.ConferenceId);

            return(_database.HashGetAsync(key, participant.Id));
        }
        public async ValueTask <T?> GetPermissionsValue <T>(Participant participant, string key)
        {
            var redisKey = GetPermissionsKey(participant);

            return(await _database.HashGetAsync <T>(redisKey, key));
        }
        public async ValueTask <IReadOnlyList <string>?> Get(Participant participant)
        {
            var key = GetKey(participant.ConferenceId);

            return(await _database.HashGetAsync <List <string> >(key, participant.Id));
        }