示例#1
0
        public async Task <List <AuditItem> > GetAuditLogsAsync(LogsFilter filter)
        {
            var guild = Client.GetGuild(filter.GuildId);

            if (guild == null)
            {
                return(new List <AuditItem>());
            }

            var queryFilter = await CreateQueryFilterAsync(filter, guild);

            var data = await GrillBotRepository.AuditLogs.GetAuditLogsQuery(queryFilter)
                       .Skip(queryFilter.Skip).Take(queryFilter.Take).ToListAsync();

            var items = new List <AuditItem>();

            foreach (var item in data)
            {
                var user = item.User == null ? null : await UserHelper.MapUserAsync(Client, BotState, item.User);

                var auditItem = await AuditItem.CreateAsync(guild, item, user, MessageCache);

                items.Add(auditItem);
            }

            return(items);
        }