Пример #1
0
        // 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);
        }