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