protected override async ValueTask <DiscordChannelPacket> GetFromCacheAsync(params object[] id) { if (id.Length == 1) { return(await cacheClient.HashGetAsync <DiscordChannelPacket>( CacheHelpers.ChannelsKey(), id[0].ToString())); } return(await cacheClient.HashGetAsync <DiscordChannelPacket>( CacheHelpers.ChannelsKey((ulong)id[1]), id[0].ToString())); }
public async Task <IScriptValue> GetAsync(string key) { if (values.TryGetValue(key, out var value)) { return(value); } var cacheKey = GetCacheKey(guildId); var json = await cache.HashGetAsync <string>(cacheKey, key); if (string.IsNullOrEmpty(json)) { return(Null); } try { value = await JsonUtils.ReadJsonAsync(json); } catch { value = Null; } values.AddOrUpdate(key, value, (a1, a2) => value); return(value); }
/// <inheritdoc /> public async ValueTask <Optional <Block> > GetBlockAsync(long guildId, string commandName) { var cachePackage = await cache.HashGetAsync <BlockCache>( CommandCacheKey, commandName + ":" + guildId); if (cachePackage != null) { await using var stream = new MemoryStream(cachePackage.Bytes); var reader = new BinaryReader(stream); return(reader.ReadBlock()); } var repository = unitOfWork.GetRepository <CustomCommand>(); var command = await repository.GetAsync(guildId, commandName); if (command == null) { return(Optional <Block> .None); } var block = BlockGenerator.Compile(command.CommandBody); await cache.HashUpsertAsync( CommandCacheKey, commandName + ":" + guildId, BlockCache.Create(block)); return(block); }
private async Task <TaskPayload> FetchLatestWorkAsync() { var key = await cacheClient.SortedSetPopAsync <TaskKey>(SchedulerQueueKey); if (key == null || string.IsNullOrWhiteSpace(key?.Uuid)) { return(null); } return(await cacheClient.HashGetAsync <TaskPayload>( GetObjectNamespace(key.OwnerId), key.Uuid)); }
protected override async ValueTask <DiscordRolePacket> GetFromCacheAsync(params object[] id) { var rolePacket = await cacheClient.HashGetAsync <DiscordRolePacket>( CacheHelpers.GuildRolesKey((ulong)id[1]), id[0].ToString()); if (rolePacket != null) { rolePacket.GuildId = (ulong)id[1]; } return(rolePacket); }
/// <inheritdoc /> public async ValueTask <BlackjackContext> GetAsync(params object[] id) { if (id.Length != 2) { throw new ArgumentOutOfRangeException(); } var key = GetInstanceKey((ulong)id[0], (ulong)id[1]); var context = await cache.HashGetAsync <BlackjackContext>(SessionKey, key); Logging.Log.Debug($"GET - {SessionKey}: {key}"); if (context != null) { context.ChannelId = (ulong)id[0]; context.UserId = (ulong)id[1]; } return(context); }
/// <inheritdoc /> public async Task <TaskPayload> GetTaskAsync(string ownerId, string uuid) { return(await cacheClient.HashGetAsync <TaskPayload>( parent.GetObjectNamespace(ownerId), uuid)); }
protected override async ValueTask <DiscordUserPacket> GetFromCacheAsync(params object[] id) { return(await cacheClient.HashGetAsync <DiscordUserPacket>(CacheHelpers.UsersCacheKey, id[0].ToString())); }
protected override async ValueTask <DiscordGuildMemberPacket> GetFromCacheAsync(params object[] id) { return(await cacheClient.HashGetAsync <DiscordGuildMemberPacket>( CacheHelpers.GuildMembersKey((ulong)id[1]), id[0].ToString())); }
public async Task <T> GetAsync(string key) => await _cacheClient.HashGetAsync <T>(_key, key);
/// <inhericdoc /> public async ValueTask <DiscordUserPacket> GetCurrentUserAsync() { return(await cache.HashGetAsync <DiscordUserPacket>(CacheHelpers.UsersCacheKey, "me")); }