internal void CreateJsonFile(FBPlayers players)
        {
            if (players.Count > 0)
            {
                string json     = players.ToJson();
                string filename = string.Format(
                    "{0}FBPlayerTransaction_{1:yyyy-MM-dd_hhmmss}{2}.json"
                    , ConfigReader.OutputDirectory
                    , DateTime.Now
                    , this.FilenameStamp);

                Infrastructure.IO.FileServices.CreateTextFile(filename, json);
            }
        }
        internal FBPlayers GetTransactions(string url)
        {
            Console.WriteLine(url);

            var players = new FBPlayers();

            //* Get the URL specified

            HtmlWeb      htmlWeb  = new HtmlWeb();
            HtmlDocument document = htmlWeb.Load(url);

            //* Get <table> tags

            HtmlNodeCollection tableTags = document.DocumentNode.SelectNodes("//table");

            if (tableTags != null)
            {
                int index_td = 0, index_tr = 0;

                foreach (HtmlNode tableTag in tableTags)
                {
                    if (tableTag.Attributes["class"] == null)
                    {
                        continue;
                    }

                    if (tableTag.Attributes["class"].Value == "Tst-table Table")
                    {
                        #region Found the table; find rows to work

                        //PlayerTrend playerTrend;

                        index_tr = 0;

                        foreach (HtmlNode trNode in tableTag.ChildNodes["tbody"].ChildNodes)
                        {
                            index_td = 0;

                            //playerTrend = new PlayerTrend();

                            var player = new FBPlayer();
                            var trend  = new TransactionTrend();

                            foreach (HtmlNode tdNode in trNode.ChildNodes)
                            {
                                if (index_td == 0)
                                {
                                    #region Parse into name, team and positions

                                    foreach (HtmlNode descendant in tdNode.Descendants())
                                    {
                                        if (descendant.Name == "div")
                                        {
                                            if (descendant.Attributes["class"] != null)
                                            {
                                                if (descendant.Attributes["class"].Value.Contains("ysf-player-name"))
                                                {
                                                    string[] allData = descendant.InnerText.Split('-');

                                                    //playerTrend.PlayerName = allData[0].Trim();
                                                    player.Name = allData[0].Trim();

                                                    var aux = player.Name.Split(' ');

                                                    //playerTrend.Team = aux[aux.Length - 1].Trim();

                                                    player.Team = aux[aux.Length - 1].Trim();

                                                    player.Name = player.Name.Remove(
                                                        player.Name.Length - 1 - player.Team.Length);

                                                    //* Position

                                                    string positions = allData[1].Trim();

                                                    foreach (string pos in positions.Split(','))
                                                    {
                                                        player.Positions.Add(pos.Trim());
                                                    }

                                                    break;
                                                }
                                            }
                                        }
                                    }

                                    #endregion
                                }
                                else if (index_td == 1)
                                {
                                    trend.Drops = Convert.ToInt32(tdNode.InnerText.Trim());
                                }
                                else if (index_td == 2)
                                {
                                    trend.Adds = Convert.ToInt32(tdNode.InnerText.Trim());
                                }

                                index_td += 1;
                            }

                            trend.DateOfSample = DateTime.Now;

                            player.TransactionTrends.Add(trend);

                            players.Add(player);

                            //playerTrends.Add(playerTrend);

                            index_tr += 1;
                        }

                        #endregion
                    }
                }
            }

            return(players);
        }