コード例 #1
0
 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 !
     });
コード例 #2
0
 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 !
     });
コード例 #3
0
        public async Task <ulong?> GetModerationLogsChannelAsync()
        {
            await using var db = new SkyraDatabaseContext();
            var guild = await db.Guilds.FindAsync(GuildId);

            return(guild?.Channel.ModerationLogs);
        }
コード例 #4
0
 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());
 }
コード例 #5
0
 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());
 }
コード例 #6
0
		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];
		}
コード例 #7
0
        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());
        }
コード例 #8
0
        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);
        }
コード例 #9
0
 private static async Task <string> RetrieveGuildPrefixAsync(ulong guildId)
 {
     await using var db = new SkyraDatabaseContext();
     return((await db.Guilds.FindAsync(guildId))?.Prefix ?? DefaultPrefix);
 }
コード例 #10
0
 public async Task <Moderation?> GetAsync(uint caseId)
 {
     await using var db = new SkyraDatabaseContext();
     return(await db.Moderation.FindAsync(GuildId, caseId));
 }