public async Task <bool> IsPluginEnabled(IGuild guild, ModuleInfo moduleInfo) { var moduleAssemblyName = GetAssemblyEntityByModule(moduleInfo); if (moduleAssemblyName.Assembly.GetName().Name.SanitizAssembly() == "HeroBot.Plugins.HeroBot") { return(true); } PluginEnabling[] cv; var rd = await _simpleCacheImplementation.GetValueAsync($"guildPluginsCache-{guild.Id}"); if (!rd.HasValue) { var connection = _database.GetDbConnection(); cv = (await connection.QueryAsync <PluginEnabling>(GetGuildEnabledPlugins, new { guild = (long)guild.Id })).ToArray(); await _simpleCacheImplementation.CacheValueAsync($"guildPluginsCache-{guild.Id}", JsonConvert.SerializeObject(cv)); } else { cv = JsonConvert.DeserializeObject <PluginEnabling[]>(rd); } if (!cv.Any(x => x.Plugin == moduleAssemblyName.Assembly.GetName().Name.SanitizAssembly())) { return(false); } return(true); }
internal async Task <RPUser> GetRPUser(IUser user) { var cacheResult = await _cache.GetValueAsync($"rp-user-{user.Id}"); if (cacheResult.HasValue) { return(JsonConvert.DeserializeObject <RPUser>(cacheResult)); } else { using var connection = _database.GetDbConnection(); var val = await connection.QueryAsync <RPUser>(GetUserSql, new { Id = user.Id.ToString() }); if (val.Any()) { await _cache.CacheValueAsync($"rp-user-{user.Id}", JsonConvert.SerializeObject(val.First())); return(val.First()); } else { return(null); } } }