public async Task TeamMembersAsync([Name("TeamName")][Remainder] string name) { SendConstructionMessage(); var team = await ScrapClient.GetTeamByNameAsync(name); await DeleteConstructionMessageAsync(); if (team != null) { var pages = new List <PageBuilder>(); var allMembers = await team.GetMembersAsync(); var groups = allMembers.GroupBy(x => x.Rank); var leader = groups.Where(x => x.Key == Rank.Leader).First().First(); pages.Add(PageUtils.LeaderPage(team, leader)); if (groups.Where(x => x.Key == Rank.Coleader).Any()) { var coLeaders = groups.Where(x => x.Key == Rank.Coleader).First().OrderByDescending(x => x.Trophies).ToArray(); pages.AddRange(coLeaders.Chunk(10).Select(x => PageUtils.CoLeaderPage(team, x.ToArray()))); } if (groups.Where(x => x.Key == Rank.Elder).Any()) { var elders = groups.Where(x => x.Key == Rank.Elder).First().OrderByDescending(x => x.Trophies).ToArray(); pages.AddRange(elders.Chunk(10).Select(x => PageUtils.ElderPage(team, x.ToArray()))); } if (groups.Where(x => x.Key == Rank.Member).Any()) { var members = groups.Where(x => x.Key == Rank.Member).First().OrderByDescending(x => x.Trophies).ToArray(); pages.AddRange(members.Chunk(10).Select(x => PageUtils.MemberPage(team, x.ToArray()))); } var paginator = new StaticPaginatorBuilder() .WithDefaultEmotes() .WithDeletion(DeletionOptions.AfterCapturedContext | DeletionOptions.Valid) .WithUsers(Context.User) .WithPages(pages) .Build(); await Interactivity.SendPaginatorAsync(paginator, Context.Channel); } else { await ReplyAsync(embed : EmbedUtils.NotFoundEmbed("Team", name)); } }