示例#1
0
        async Task <bool> IPermissionConfig.WhitelistModule(ITextChannel channel, ModuleInfo module)
        {
            var ch = QueryChannel(channel);

            if (ch != null)
            {
                var n = QueryModule(module);
                if (n == null)
                {
                    n = new ConfigModule {
                        ModuleName = module.Name
                    };
                    Modules.Add(n);
                    await SaveChangesAsync().ConfigureAwait(false);;
                }

                var hasThis = QueryChannelModules().Any(m => m.Module.Id == n.Id && m.Channel.Id == ch.Id);
                if (!hasThis)
                {
                    var cm = new ChannelModule <TChannel, TUser>
                    {
                        Channel = ch,
                        Module  = n
                    };
                    ChannelModules.Add(cm);
                    //ch.WhiteListedModules.Add(cm);
                    await SaveChangesAsync().ConfigureAwait(false);;
                }

                return(!hasThis);
            }

            return(false);
        }
示例#2
0
        async Task <bool> IPermissionConfig.WhitelistModuleGuild(IGuild guild, ModuleInfo module)
        {
            var gui = QueryGuild(guild);

            if (gui != null)
            {
                var n = QueryModule(module);
                if (n == null)
                {
                    n = new ConfigModule {
                        ModuleName = module.Name
                    };
                    Modules.Add(n);
                    await SaveChangesAsync().ConfigureAwait(false);
                }

                var hasThis = QueryGuildModules().Any(m => m.Module.Id == n.Id && m.Guild.Id == gui.Id);
                if (!hasThis)
                {
                    var gm = new GuildModule <TGuild, TChannel, TUser>
                    {
                        Guild  = gui,
                        Module = n
                    };
                    GuildModules.Add(gm);
                    //gui.WhiteListedModules.Add(gm);
                    await SaveChangesAsync().ConfigureAwait(false);
                }

                return(!hasThis);
            }

            return(false);
        }
示例#3
0
        Task <bool> IPermissionConfig.WhitelistModule(ITextChannel channel, ModuleInfo module)
        {
            var ch = QueryChannel(channel);

            if (ch != null)
            {
                var n = QueryModule(module);
                if (n == null)
                {
                    n = new ConfigModule {
                        ModuleName = module.Name
                    };
                    Insert(n);
                    //SaveChanges();
                }

                var mods    = ch.WhiteListedModules;
                var hasThis = mods.Any(m => m.Id == n.Id);
                if (!hasThis)
                {
                    mods.Add(n);
                    //ch.WhiteListedModules.Add(cm);
                    //SaveChanges();
                }

                return(Task.FromResult(!hasThis));
            }

            return(Task.FromResult(false));
        }
示例#4
0
        Task <bool> IPermissionConfig.WhitelistModuleGuild(IGuild guild, ModuleInfo module)
        {
            var gui = QueryGuild(guild);

            if (gui != null)
            {
                var n = QueryModule(module);
                if (n == null)
                {
                    n = new ConfigModule {
                        ModuleName = module.Name
                    };
                    Insert(n);
                    //SaveChanges();
                }

                var mods    = gui.WhiteListedModules;
                var hasThis = mods.Any(m => m.Id == n.Id);
                if (!mods.Any(m => m.Id == n.Id))
                {
                    mods.Add(n);
                    //gui.WhiteListedModules.Add(gm);
                    //SaveChanges();
                }

                return(Task.FromResult(!hasThis));
            }

            return(Task.FromResult(false));
        }
        Task <bool> IPermissionConfig.WhitelistModuleGuild(IGuild guild, string moduleName)
        {
            var gui = Guilds.Include(g => g.WhiteListedModules).Single(g => g.GuildId == guild.Id);
            var mod = _modules.SingleOrDefault(m => m.Name == moduleName);

            if (mod != null)
            {
                var n = Modules.SingleOrDefault(m => m.ModuleName == moduleName);
                if (n == null)
                {
                    n = new ConfigModule {
                        ModuleName = moduleName
                    };
                    Modules.Add(n);
                }
                var hasThis = gui.WhiteListedModules.Any(m => m.Id == n.Id);
                if (!hasThis)
                {
                    gui.WhiteListedModules.Add(n);
                }

                return(Task.FromResult(!hasThis));
            }

            return(Task.FromResult(false));
        }
        Task <bool> IPermissionConfig.WhitelistModule(ITextChannel channel, string moduleName)
        {
            var chan = Channels.Include(c => c.WhiteListedModules).Single(c => c.ChannelId == channel.Id);
            var mod  = _modules.SingleOrDefault(m => m.Name == moduleName);

            if (mod != null)
            {
                var n = Modules.SingleOrDefault(m => m.ModuleName == moduleName);
                if (n == null)
                {
                    n = new ConfigModule {
                        ModuleName = moduleName
                    };
                    Modules.Add(n);
                }
                var hasThis = chan.WhiteListedModules.Any(m => m.Id == n.Id);
                if (!hasThis)
                {
                    chan.WhiteListedModules.Add(n);
                }
                return(Task.FromResult(!hasThis));
            }

            return(Task.FromResult(false));
        }