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(); } }
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); } }
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); }
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); }
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()); }
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()); }