Exemplo n.º 1
0
        public async Task <List <DiscordUser> > GetUsersList(WebAdminUserListFilter filter)
        {
            var guild = DiscordClient.GetGuild(filter.GuildID);

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

            var users = await UserSearchService.FindUsersAsync(guild, filter.UserQuery);

            var queryFilter = filter.CreateQueryFilter(guild, users);
            var dbUsers     = await GrillBotRepository.UsersRepository.GetUsersQuery(queryFilter, UsersIncludes.None)
                              .Skip((filter.Page == 0 ? 0 : filter.Page - 1) * PaginationInfo.DefaultPageSize).Take(PaginationInfo.DefaultPageSize)
                              .ToListAsync();

            var result = new List <DiscordUser>();

            foreach (var user in dbUsers)
            {
                var mappedUser = await UserHelper.MapUserAsync(DiscordClient, BotState, user);

                if (mappedUser != null)
                {
                    result.Add(mappedUser);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public async Task <PaginationInfo> GetPaginationInfo(WebAdminUserListFilter filter)
        {
            var guild = DiscordClient.GetGuild(filter.GuildID);

            if (guild == null)
            {
                return(new PaginationInfo());
            }

            var users = await UserSearchService.FindUsersAsync(guild, filter.UserQuery);

            var queryFilter = filter.CreateQueryFilter(guild, users);
            var totalCount  = await GrillBotRepository.UsersRepository.GetUsersQuery(queryFilter, UsersIncludes.None).CountAsync();

            if (filter.Page < 0)
            {
                filter.Page = 0;
            }

            var skip = (filter.Page == 0 ? 0 : filter.Page - 1) * PaginationInfo.DefaultPageSize;

            return(new PaginationInfo()
            {
                CanNext = skip + PaginationInfo.DefaultPageSize < totalCount,
                CanPrev = skip != 0,
                Page = filter.Page,
                PagesCount = (int)System.Math.Ceiling(totalCount / (double)PaginationInfo.DefaultPageSize)
            });
        }
Exemplo n.º 3
0
        public async Task <PaginationInfo> GetPaginationInfo(WebAdminUserListFilter filter)
        {
            var guild = DiscordClient.GetGuild(filter.GuildID);

            if (guild == null)
            {
                return(new PaginationInfo());
            }

            var users = await UserSearchService.FindUsersAsync(guild, filter.UserQuery);

            var queryFilter = filter.CreateQueryFilter(guild, users);
            var totalCount  = await GrillBotRepository.UsersRepository.GetUsersQuery(queryFilter, UsersIncludes.None).CountAsync();

            if (filter.Page < 0)
            {
                filter.Page = 0;
            }

            var skip = (filter.Page == 0 ? 0 : filter.Page - 1) * PaginationInfo.DefaultPageSize;

            return(new PaginationInfo(skip, filter.Page, totalCount));
        }