// Legacy method for GW < 38 public static List <LadderPlayer> PurgeNonPlayers(List <LadderPlayer> Ladder, List <Game> Games, int CurrentWeekNumber) { if (CurrentWeekNumber > 19) { List <Game> RecentGames = Games.Where(x => x.aborted == 0 && x.WeekNumber >= CurrentWeekNumber - 4 && x.WeekNumber <= CurrentWeekNumber).ToList(); List <GamePlayer> RecentPlayers = RecentGames.SelectMany(x => x.GamePlayers).ToList(); List <string> RecentPlayerNames = RecentPlayers.Select(x => x.playername).ToList(); OldPlayers.AddRange(Ladder.Where(x => !RecentPlayerNames.Contains(x.PlayerName) && x.Position > Ladder.Count * .75)); Ladder.RemoveAll(x => !RecentPlayerNames.Contains(x.PlayerName) && x.Position > Ladder.Count * .75); int position = 1; foreach (LadderPlayer LadderPlayer in Ladder.OrderBy(x => x.Position)) { LadderPlayer.Position = position; position++; } } return(Ladder); }