public async Task RunAsync(CoreMessage message, CultureInfo language) { await using var db = new SkyraDatabaseContext(); await db.Guilds.UpdateOrCreateAsync((ulong)message.GuildId !, guild => { guild.Language = language.Name; }, guild => new Guild { Id = (ulong)message.GuildId ! });
public async Task RunAsync([NotNull] Message message, [Argument(Maximum = 10)] string prefix) { await using var db = new SkyraDatabaseContext(); await db.Guilds.UpdateOrCreateAsync((ulong)message.GuildId !, guild => { guild.Prefix = prefix; }, guild => new Guild { Id = (ulong)message.GuildId ! });
public async Task <ulong?> GetModerationLogsChannelAsync() { await using var db = new SkyraDatabaseContext(); var guild = await db.Guilds.FindAsync(GuildId); return(guild?.Channel.ModerationLogs); }
public async Task <Moderation[]> GetAsync(IEnumerable <uint> caseIds) { await using var db = new SkyraDatabaseContext(); return(await db.Moderation.Where(entry => entry.GuildId == GuildId && caseIds.Contains(entry.CaseId)) .OrderBy(entry => entry.CaseId) .ToArrayAsync()); }
public async Task <Moderation[]> GetAsync() { await using var db = new SkyraDatabaseContext(); return(await db.Moderation.Where(entry => entry.GuildId == GuildId) .OrderBy(entry => entry.CaseId) .ToArrayAsync()); }
public async Task<CultureInfo> GetLanguageAsync() { if (!(Language is null)) return Language; await using var db = new SkyraDatabaseContext(); var guild = await db.Guilds.FindAsync(GuildId); var languageId = guild is null ? "en-US" : guild.Language; return Language = Client.Cultures[languageId]; }
public async Task <Moderation?> GetLatestModerationEntryByUser(ulong userId) { var minimumTime = DateTime.Now.Subtract(TimeSpan.FromSeconds(15)); await using var db = new SkyraDatabaseContext(); return(await db.Moderation.Where(entry => entry.GuildId == GuildId && entry.UserId == userId && entry.CreatedAt >= minimumTime) .OrderByDescending(entry => entry.CreatedAt) .FirstAsync()); }
public async Task <Moderation> Create([NotNull] Moderation moderation) { await using var db = new SkyraDatabaseContext(); moderation.GuildId = GuildId; moderation.CaseId = (uint)await db.Moderation.CountAsync(entry => entry.GuildId == GuildId) + 1; await db.Moderation.AddAsync(moderation); await db.SaveChangesAsync(); return(moderation); }
private static async Task <string> RetrieveGuildPrefixAsync(ulong guildId) { await using var db = new SkyraDatabaseContext(); return((await db.Guilds.FindAsync(guildId))?.Prefix ?? DefaultPrefix); }
public async Task <Moderation?> GetAsync(uint caseId) { await using var db = new SkyraDatabaseContext(); return(await db.Moderation.FindAsync(GuildId, caseId)); }