Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
 }
Beispiel #7
0
        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));
            }
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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();
            }
        }
Beispiel #10
0
        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);
            }
        }
Beispiel #11
0
        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();
            }
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
 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));
 }
Beispiel #14
0
        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();
            }
        }
Beispiel #15
0
        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();
            }
        }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        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));
            }
        }