コード例 #1
0
        public async Task<string> Alias(string contactId)
        {
            var memberPayload = await _cacheRoomMemberPayload.GetOrAddAsync(
                CacheConst.CacheKeyRoomMember(RoomId, contactId),
                async () => await _puppetService.RoomMemberRawPayload(RoomId, contactId),
                () => new DistributedCacheEntryOptions
                {
                    AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(CacheConst.CacheGlobalExpirationTime)
                });

            return memberPayload?.Name;
        }
コード例 #2
0
        private async Task RoomMemberPayloadDirty(string roomId)
        {
            var contactIdList = await _puppetService.RoomMemberList(RoomPayload.Id);
            if (contactIdList.IsNullOrEmpty())
            {
                return;
            }

            Logger.LogInformation($"remove room member cache, room:{roomId},contact:{string.Join(',', contactIdList)}");

            foreach (var contactId in contactIdList)
            {
                var cacheKey = CacheConst.CacheKeyRoomMember(roomId, contactId);
                _ = _cacheRoomPayload.RemoveAsync(cacheKey);
            }
        }