Exemplo n.º 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();
        }
        public async Task Add(IEnumerable <string> commands, ulong discordChannelId)
        {
            var newRestrictions = commands.Select(x => new CommandChannelRestriction(x, discordChannelId));

            _db.CommandChannelRestrictions.AddRange(newRestrictions);

            await _db.SaveChangesAsync().ConfigureAwait(false);
        }
Exemplo n.º 3
0
        public async Task AddDkp(ulong guildSnowflake, ulong userSnowflake, int amount)
        {
            var user = await _db.Users
                       .Where(u => u.Guild.Snowflake == guildSnowflake)
                       .FirstOrDefaultAsync(u => u.Snowflake == userSnowflake);

            user.DragonKillPoints += amount;
            _db.Users.Update(user);
            await _db.SaveChangesAsync();
        }
Exemplo n.º 4
0
        public async Task EnsureCreated(ulong guildId)
        {
            if (_db.Guilds.Any(g => g.Snowflake == guildId))
            {
                return;
            }

            var guild = new Guild()
            {
                Snowflake = guildId
            };

            _db.Guilds.Add(guild);
            await _db.SaveChangesAsync();
        }
Exemplo n.º 5
0
        public async Task DeleteProfession(ulong guildSnowflake, ulong userSnowflake, WowProfession professionType)
        {
            var user = await _db.Users
                       .Include(u => u.Professions)
                       .Where(u => u.Guild.Snowflake == guildSnowflake)
                       .FirstOrDefaultAsync(u => u.Snowflake == userSnowflake);

            if (user == null)
            {
                return;
            }

            var profession = user.Professions.FirstOrDefault(p => p.ProfessionType == professionType);

            user.Professions.Remove(profession);
            await _db.SaveChangesAsync().ConfigureAwait(false);
        }
        public async Task AddChannelOptIn(ulong channelId, ulong roleId)
        {
            var hasExistingOptIn =
                await _db.ChannelOptIns.AnyAsync(x => x.DiscordChannelId == channelId).ConfigureAwait(false);

            if (hasExistingOptIn)
            {
                throw new InvalidOperationException("Cannot add multiple opt ins for the same channel");
            }

            var optIn = new ChannelOptIn {
                DiscordChannelId = channelId, DiscordRoleId = roleId
            };

            _db.ChannelOptIns.Add(optIn);

            await _db.SaveChangesAsync().ConfigureAwait(false);
        }
Exemplo n.º 7
0
        public async Task EnsureCreated(ulong guildSnowflake, ulong userSnowflake)
        {
            if (_db.Users.Any(u => u.Guild.Snowflake == guildSnowflake && u.Snowflake == userSnowflake))
            {
                return;
            }

            var guild = await _db.Guilds.FirstOrDefaultAsync(g => g.Snowflake == guildSnowflake);

            if (guild == null)
            {
                throw new ArgumentException($"Cannot add user with id {userSnowflake} to guild {guildSnowflake} because it doesn't exist.");
            }

            var newUser = new WowTrackerUser()
            {
                Snowflake = userSnowflake
            };

            guild.Users.Add(newUser);
            _db.Guilds.Update(guild);
            await _db.SaveChangesAsync();
        }