private static PlayerLineup AddPlayersToLineup(HtmlNodeCollection valuesNodes, int round, HomeOrAway homeOrAway, string team)
        {
            var playerLineup = new PlayerLineup();

            for (int i = 0; i < valuesNodes.Count; i += 11)
            {
                playerLineup.Round      = round;
                playerLineup.HomeOrAway = homeOrAway;
                playerLineup.Team       = team;

                playerLineup.Players.Add(
                    new Player(
                        valuesNodes[i + 2].InnerText,
                        valuesNodes[i].InnerText.TrimEnd('.'),
                        valuesNodes[i + 1].InnerText)
                    );
            }

            var goalies = playerLineup.Players
                          .Where(x => x.PlayerPosition == Position.Målvakt.ToString())
                          .OrderByDescending(x => x.PlayerNumber).ToList();

            foreach (var item in goalies)
            {
                playerLineup.Players.Remove(item);
                playerLineup.Players.Insert(0, item);
            }

            return(playerLineup);
        }
        public static List <PlayerLineup> GetPlayerLineupList(List <GameRounds> gameRoundsList, int selectedRound)
        {
            var web = new HtmlWeb();

            var playerLineupList = new List <PlayerLineup>();

            foreach (var round in gameRoundsList.Where(x => x.Round == selectedRound))
            {
                Console.WriteLine(round.TeamHome + "-" + round.TeamAway);
                Thread.Sleep(1000); // Do not spam the server plz
                var doc = web.Load(round.LinkToLineup);

                var homeNode     = doc.DocumentNode.SelectNodes("//*[@class='clCommonGrid tablesorter noMarginBottom']").FirstOrDefault();
                var htmlAwayNode = doc.DocumentNode.SelectNodes("//*[@class='clCommonGrid tablesorter noMarginBottom']");
                var awayNode     = (htmlAwayNode != null && htmlAwayNode.Count == 2) ? htmlAwayNode.LastOrDefault() : null;

                var homeValuesNodes = homeNode?.SelectNodes($"{homeNode.XPath}/tbody/tr/td");
                var awayValuesNodes = awayNode?.SelectNodes($"{awayNode.XPath}/tbody/tr/td");

                if (homeValuesNodes != null)
                {
                    var playerLineup = AddPlayersToLineup(homeValuesNodes, round.Round, HomeOrAway.Hemma, round.TeamHome);

                    playerLineupList.Add(playerLineup);
                }
                else
                {
                    var playerLineup = new PlayerLineup()
                    {
                        Round      = round.Round,
                        HomeOrAway = HomeOrAway.Borta,
                        Team       = round.TeamHome,
                    };
                    playerLineupList.Add(playerLineup);
                }

                if (awayValuesNodes != null)
                {
                    var playerLineup = AddPlayersToLineup(awayValuesNodes, round.Round, HomeOrAway.Borta, round.TeamAway);
                    playerLineupList.Add(playerLineup);
                }
                else
                {
                    var playerLineup = new PlayerLineup
                    {
                        Round      = round.Round,
                        HomeOrAway = HomeOrAway.Borta,
                        Team       = round.TeamAway,
                    };
                    playerLineupList.Add(playerLineup);
                }
            }

            return(playerLineupList);
        }