Beispiel #1
0
        public DatabaseCommandContext(AbfCommandContext ctx, AbfDbContext context)
        {
            _ctx   = ctx;
            _users = context.RequestRepository <IGetOrAddRepository <User> >();
            _raids = context.RequestRepository <IRepository <Raid> >();

            if (!(_ctx.Guild is null))
            {
                _guilds = context.RequestRepository <IGetOrAddRepository <Guild> >();
            }

            Database = context;
        }
Beispiel #2
0
        private static async Task <(bool, Raid, User, WowCharacter)> CheckForRaidAsync(ulong messageId, ulong userId, string emoteName, AbfDbContext dbContext)
        {
            await dbContext.Raids.Include(r => r.Participants).ToListAsync();

            var raid = await dbContext.Raids.FirstOrDefaultAsync(r => r.Id == messageId);

            if (raid is null)
            {
                return(false, null, null, null);
            }

            await dbContext.Users.Include(u => u.Characters).ToListAsync();

            var user = await dbContext.Users.FindAsync(userId);

            if (user is null)
            {
                return(false, raid, null, null);
            }

            var character = user.Characters.FirstOrDefault(c => c.Class.Humanize() == emoteName);

            if (character is null)
            {
                return(false, raid, user, null);
            }

            return(true, raid, user, character);
        }