Example #1
0
        private static List <Player> GetPlayers(string html, EventType.TeamType teamType)
        {
            HtmlNode        document  = GetHtmlNode(html);
            List <HtmlNode> names     = document.QuerySelectorAll(Configuration.Values["selectors:teamPagePlayerFullNames"]).ToList();;
            List <HtmlNode> images    = document.QuerySelectorAll(Configuration.Values["selectors:teamPagePlayerImages"]).ToList();
            List <HtmlNode> positions = document.QuerySelectorAll(Configuration.Values["selectors:teamPagePlayerPositions"]).ToList();

            var  players   = new List <Player>();
            bool addedSkip = false;

            for (var i = 0; i < names.Count; i++)
            {
                Player p = GetPlayer(names[i].InnerHtml, (images.Count > i ? images[i].InnerHtml : null), (positions.Count > i ? positions[i].InnerHtml : null), 4 - i);
                if (p.IsSkip)
                {
                    addedSkip = true;
                }
                players.Add(p);
            }
            int numberOfPlayers = EventType.GetNumberOfPlayersFromTeamType(teamType);
            Queue <Player.Position> positionsLeft = GetEmptyPositions(players, teamType);

            while (players.Count < numberOfPlayers)
            {
                Player.Position position = 0;
                if (positionsLeft.Count > 0)
                {
                    position = positionsLeft.Dequeue();
                }
                Player p = new Player(null, null, Gender.Unknown, position, (!addedSkip ? true : false));
                addedSkip = true;
                Program.Logger.Log("Adding Player", p);
                players.Add(p);
            }
            return(players);
        }