コード例 #1
0
        public static async Task DeleteDisabledCommand(ulong GuildId, string name, DisabledCommandType type)
        {
            using var db = new NamikoDbContext();
            var command = await db.DisabledCommands.Where(x => x.GuildId == GuildId && x.Name.Equals(name) && x.Type == type).FirstOrDefaultAsync();

            if (command != null)
            {
                db.Remove(command);
                await db.SaveChangesAsync();
            }
        }
コード例 #2
0
        public static bool IsDisabled(string name, ulong guildId, DisabledCommandType type)
        {
            HashSet <string> set;
            var dict = type switch
            {
                DisabledCommandType.Command => DisabledCommands,
                DisabledCommandType.Module => DisabledModules,
                DisabledCommandType.Images => null,
                _ => throw new InvalidEnumArgumentException("Unknown type")
            };

            if (dict == null)
            {
                return(DisabledImages.Contains(guildId));
            }
            else if (dict.TryGetValue(guildId, out set))
            {
                return(set.Contains(name));
            }
            return(false);
        }
    }
コード例 #3
0
        public static async Task Remove(string name, ulong guildId, DisabledCommandType type)
        {
            HashSet <string> set;
            var dict = type switch
            {
                DisabledCommandType.Command => DisabledCommands,
                DisabledCommandType.Module => DisabledModules,
                DisabledCommandType.Images => null,
                _ => throw new InvalidEnumArgumentException("Unknown type")
            };

            if (type == DisabledCommandType.Images)
            {
                DisabledImages.Remove(guildId);
            }
            else if (dict.TryGetValue(guildId, out set))
            {
                set.Remove(name);
            }

            await DisabledCommandDb.DeleteDisabledCommand(guildId, name, type);
        }
コード例 #4
0
        public static async Task <bool> AddNew(string name, ulong guildId, DisabledCommandType type)
        {
            HashSet <string> set;
            var dict = type switch
            {
                DisabledCommandType.Command => DisabledCommands,
                DisabledCommandType.Module => DisabledModules,
                DisabledCommandType.Images => null,
                _ => throw new InvalidEnumArgumentException("Unknown type")
            };

            if (type == DisabledCommandType.Images)
            {
                if (DisabledImages.Contains(guildId))
                {
                    return(false);
                }
                DisabledImages.Add(guildId);
            }
            else if (dict.TryGetValue(guildId, out set))
            {
                if (set.Contains(name))
                {
                    return(false);
                }
                set.Add(name);
            }
            else
            {
                set = new HashSet <string>();
                set.Add(name);
                dict.Add(guildId, set);
            }

            await DisabledCommandDb.AddNewDisabledCommand(guildId, name, type);

            return(true);
        }
コード例 #5
0
        public static async Task <int> AddNewDisabledCommand(ulong GuildId, string name, DisabledCommandType type)
        {
            using var db = new NamikoDbContext();
            var cmd = await db.DisabledCommands.Where(x => x.GuildId == GuildId && x.Name.Equals(name) && x.Type == type).FirstOrDefaultAsync();

            if (cmd != null)
            {
                return(-1);
            }

            var DisabledCommand = new DisabledCommand
            {
                GuildId = GuildId,
                Type    = type,
                Name    = name
            };

            db.DisabledCommands.Add(DisabledCommand);
            return(await db.SaveChangesAsync());
        }
コード例 #6
0
 public static async Task <DisabledCommand> GetDisabledCommand(ulong GuildId, string name, DisabledCommandType type)
 {
     using var db = new NamikoDbContext();
     return(await db.DisabledCommands.Where(x => x.GuildId == GuildId && x.Name.Equals(name) && x.Type == type).FirstOrDefaultAsync());
 }