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; }
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); }