public async Task <bool> IsEnabled(ICacheClient cache, ulong id) { if (await cache.ExistsAsync(GetCacheKey(id))) { return(await cache.GetAsync <bool>(GetCacheKey(id))); } else { ModuleState state = null; using (var context = new IAContext()) { long guildId = id.ToDbLong(); state = await context.ModuleStates.FindAsync(SqlName, guildId); } if (state == null) { await cache.UpsertAsync(GetCacheKey(id), Enabled); return(Enabled); } await cache.UpsertAsync(GetCacheKey(id), state.State); return(state.State); } }
public static async Task SetLanguageAsync(long id, string language) { using (var context = new IAContext()) { ChannelLanguage lang = await context.Languages.FindAsync(id); if (LocaleNames.TryGetValue(language, out string val)) { language = val; } if (lang == null) { lang = context.Languages.Add(new ChannelLanguage() { EntityId = id, Language = language }).Entity; } lang.Language = language; cache.AddOrUpdate(id, lang.Language, (x, y) => lang.Language); await context.SaveChangesAsync(); } }
public async Task <bool> IsEnabled(ICacheClient client, ulong id) { if (Module != null) { if (!await Module.IsEnabled(client, id)) { return(false); } } if (await client.ExistsAsync(GetCacheKey(id))) { return(await client.GetAsync <bool>(GetCacheKey(id))); } else { CommandState state = null; using (var context = new IAContext()) { long guildId = id.ToDbLong(); state = await context.CommandStates.FindAsync(Name, guildId); } bool currentState = state?.State ?? DefaultEnabled; await client.UpsertAsync(GetCacheKey(id), currentState); return(currentState); } }
public async Task <bool> IsEnabled(ulong id) { bool isEnabled = false; if (Module != null) { if (!await Module.IsEnabled(id)) { return(false); } } CommandState state = null; using (var context = new IAContext()) { state = await context.CommandStates.FindAsync(Name, id.ToDbLong()); } if (state == null) { isEnabled = DefaultEnabled; } else { isEnabled = state.State; } return(isEnabled); }
public async Task ChangeForGuildAsync(ulong id, string prefix) { if (Changable) { using (var context = new IAContext()) { long guildId = id.ToDbLong(); Identifier i = await context.Identifiers.FindAsync(guildId, DefaultValue); if (i == null) { context.Identifiers.Add(new Identifier() { GuildId = guildId, DefaultValue = DefaultValue, Value = prefix }); } else { i.Value = prefix; } await context.SaveChangesAsync(); } } }
async Task <Identifier> CreateNewAsync(IAContext context, long id) { return((await context.Identifiers.AddAsync(new Identifier() { GuildId = id, DefaultValue = DefaultValue, Value = DefaultValue })).Entity); }
public async Task <bool> IsEnabled(ulong id) { if (Module != null) { if (!await Module.IsEnabled(id)) { return(false); } } if (cache.TryGetValue(id, out bool value)) { return(value); } else { CommandState state = null; using (var context = new IAContext()) { long guildId = id.ToDbLong(); state = await context.CommandStates.FindAsync(Name, guildId); } return(cache.GetOrAdd(id, state?.State ?? DefaultEnabled)); } }
public async Task <bool> IsEnabled(ulong id) { ModuleState state = null; using (var context = new IAContext()) { long guildId = id.ToDbLong(); state = await context.ModuleStates.FindAsync(SqlName, guildId); } if (state == null) { return(Enabled); } return(state.State); }
public async Task SetEnabled(ulong serverId, bool enabled) { using (var context = new IAContext()) { ModuleState state = await context.ModuleStates.FindAsync(SqlName, serverId.ToDbLong()); if (state == null) { state = context.ModuleStates.Add(new ModuleState() { ChannelId = serverId.ToDbLong(), ModuleName = SqlName, State = Enabled }); } state.State = enabled; await context.SaveChangesAsync(); } }
public async Task <string> GetIdentifierAsync(ulong guildId, PrefixInstance prefix) { using (var context = new IAContext()) { Identifier i = await context.Identifiers.FindAsync(guildId); if (i == null) { i = context.Identifiers.Add(new Identifier() { GuildId = guildId.ToDbLong(), Value = prefix.DefaultValue }); await context.SaveChangesAsync(); } return(i.Value); } }
public async Task SetEnabled(ulong channelId, bool enabled) { using (var context = new IAContext()) { CommandState state = await context.CommandStates.FindAsync(Name, channelId.ToDbLong()); if (state == null) { state = context.CommandStates.Add(new CommandState() { ChannelId = channelId.ToDbLong(), CommandName = Name, State = DefaultEnabled }); } state.State = enabled; await context.SaveChangesAsync(); } }
public async Task <string> LoadFromDatabase(ulong id) { long guildId = id.ToDbLong(); Identifier identifier = null; using (var context = new IAContext()) { identifier = await context.Identifiers.FindAsync(guildId, DefaultValue); if (identifier == null) { identifier = await CreateNewAsync(context, guildId); } await context.SaveChangesAsync(); } return(identifier.Value); }
public static string GetLanguage(long channelId) { if (cache.TryGetValue(channelId, out string language)) { return(language); } else { using (var context = new IAContext()) { ChannelLanguage l = context.Languages.Find(channelId); if (l != null) { cache.TryAdd(channelId, l.Language); return(l.Language); } } } return(cache.GetOrAdd(channelId, defaultResource)); }
public async Task SetEnabled(ICacheClient client, ulong channelId, bool enabled) { using (var context = new IAContext()) { CommandState state = await context.CommandStates.FindAsync(Name, channelId.ToDbLong()); if (state == null) { state = context.CommandStates.Add(new CommandState() { ChannelId = channelId.ToDbLong(), CommandName = Name, State = DefaultEnabled }).Entity; } state.State = enabled; await client.UpsertAsync(GetCacheKey(channelId), enabled); await context.SaveChangesAsync(); } }
public async Task SetEnabled(ICacheClient cache, ulong channelId, bool enabled) { using (var context = new IAContext()) { ModuleState state = await context.ModuleStates.FindAsync(SqlName, channelId.ToDbLong()); if (state == null) { state = context.ModuleStates.Add(new ModuleState() { ChannelId = channelId.ToDbLong(), ModuleName = SqlName, State = Enabled }).Entity; } state.State = enabled; await cache.UpsertAsync(GetCacheKey(channelId), enabled); await context.SaveChangesAsync(); } }
public async Task <string> GetForGuildAsync(ulong id) { if (Changable) { long guildId = id.ToDbLong(); using (var context = new IAContext()) { Identifier identifier = await context.Identifiers.FindAsync(guildId, DefaultValue); if (identifier == null) { identifier = context.Identifiers.Add(new Identifier() { GuildId = guildId, DefaultValue = DefaultValue, Value = DefaultValue }); await context.SaveChangesAsync(); } return(identifier.Value); } } return(DefaultValue); }
public async Task <bool> IsEnabled(ulong id) { ModuleState state = null; if (cache.ContainsKey(id)) { return(cache.GetOrAdd(id, Enabled)); } else { using (var context = new IAContext()) { long guildId = id.ToDbLong(); state = await context.ModuleStates.FindAsync(SqlName, guildId); } if (state == null) { return(cache.GetOrAdd(id, Enabled)); } return(cache.GetOrAdd(id, state.State)); } }