public GroupCfg GetGroupConfig(long gid) { GroupCfg config = null; config = Config.groupConfig.GetValueOrDefault(gid, null); if (config != null) { return(config); } using (var db = new BlacklistDatabaseContext()) { GroupCfg groupCfg; try { groupCfg = db.GroupConfig .Single(groups => groups.GroupID == gid); Config.groupConfig.TryAdd(gid, groupCfg); } catch (InvalidOperationException) { groupCfg = new GroupCfg { GroupID = gid, AdminOnly = Config.DefaultSoamAdminOnly, BlackList = Config.DefaultSoamBlacklist, AutoKick = Config.DefaultSoamAutoKick, AntiBot = Config.DefaultSoamAntiBot, AntiHalal = Config.DefaultSoamAntiHalal, AutoDeleteSpamMessage = Config.DefaultSoamAutoDeleteSpamMessage, AutoDeleteCommand = Config.DefaultSoamAutoDeleteCommand, SubscribeBanList = Config.DefaultSoamSubscribeBanList }; db.GroupConfig.Add(groupCfg); Config.groupConfig.TryAdd(gid, groupCfg); db.SaveChanges(); return(groupCfg); } return(groupCfg); } }
public GroupCfg SetGroupConfig( long gid, int AdminOnly = 3, int BlackList = 3, int AutoKick = 3, int AntiBot = 3, int AntiHalal = 3, int AutoDeleteSpamMessage = 3, int AutoDeleteCommand = 3, int SubscribeBanList = 3 ) { GroupCfg groupCfg = GetGroupConfig(gid); if (AdminOnly != 3) { groupCfg.AdminOnly = AdminOnly; } if (BlackList != 3) { groupCfg.BlackList = BlackList; } if (AutoKick != 3) { groupCfg.AutoKick = AutoKick; } if (AntiBot != 3) { groupCfg.AntiBot = AntiBot; } if (AntiHalal != 3) { groupCfg.AntiHalal = AntiHalal; } if (AutoDeleteSpamMessage != 3) { groupCfg.AutoDeleteSpamMessage = AutoDeleteSpamMessage; } if (AutoDeleteCommand != 3) { groupCfg.AutoDeleteCommand = AutoDeleteCommand; } if (SubscribeBanList != 3) { groupCfg.SubscribeBanList = SubscribeBanList; } Config.groupConfig[gid] = groupCfg; using (var db = new BlacklistDatabaseContext()) { try { db.GroupConfig.Add(groupCfg); db.SaveChanges(); } catch (DbUpdateException) { db.GroupConfig.Update(groupCfg); db.SaveChanges(); } return(groupCfg); } }