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