Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
 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());
 }