public async Task AddModuleManagerRole(ulong guildSnowflake, ulong roleId, WowTrackerModule module) { var config = await _db.ModuleAccessConfigurations .Where(r => r.Guild.Snowflake == guildSnowflake) .FirstOrDefaultAsync(r => r.Module == module); if (config == null) { config = new RoleModuleAccessConfiguration() { Module = module }; config.RoleIds.Add(roleId); var guild = await _db.Guilds.FirstOrDefaultAsync(g => g.Snowflake == guildSnowflake); guild.RoleConfigurations.Add(config); } else { if (!config.RoleIds.Exists(r => r == roleId)) { config.RoleIds.Add(roleId); } } _db.ModuleAccessConfigurations.Update(config); await _db.SaveChangesAsync(); }
public async Task RemoveModuleManagerRole(ulong guildSnowflake, ulong roleId, WowTrackerModule module) { var config = await _db.ModuleAccessConfigurations .Where(r => r.Guild.Snowflake == guildSnowflake) .FirstOrDefaultAsync(r => r.Module == module); if (config == null) { return; } config.RoleIds.Remove(roleId); _db.ModuleAccessConfigurations.Update(config); await _db.SaveChangesAsync(); }
public async Task <RoleModuleAccessConfiguration> GetModuleAccessConfigurations(ulong guildSnowflake, WowTrackerModule module) { return(await _db.ModuleAccessConfigurations .Where(r => r.Guild.Snowflake == guildSnowflake) .Where(r => r.Module == module) .FirstOrDefaultAsync()); }