Beispiel #1
0
 public IEnumerable<Team> GetRoster()
 {
     const string rosterUrl = "http://breakawaysports.info/sports/inline-hockey/#inline-roster";
     const int numberOfTeams = 8;
     const int numberOfColumns = 4;
     var tableData = HtmlParser.GetTableHtmlList(rosterUrl, "table").FirstOrDefault();
     var elements = _parser.GetElementList(tableData);
     var list = new List<Element>();
     for (var l = 0; l <= elements.Count / 2 + numberOfColumns; l += elements.Count / 2 + numberOfColumns)
     {
         for (var j = 0; j < numberOfTeams / 2; j++)
         {
             var newList = new Element[elements.Count / numberOfTeams];
             for (var i = 0; i < elements.Count / numberOfTeams; i++)
             {
                 var k = ((i * numberOfColumns) + j) + l;
                 if (k >= elements.Count)
                     newList[i] = new Element { Directive = "td", Data = string.Empty };
                 else
                     newList[i] = elements[k];
                 if (i < 1)
                     newList[i].Directive = "th";
             }
             list = list.Concat(newList.ToList()).ToList();
         }
     }
     var data = list.Select((e, i) => new { Index = i, Value = e }).GroupBy(anon => anon.Index / 12)
         .Select(g => new Team
         {
             Name = g.FirstOrDefault(anon => anon.Value.Directive == "th")?.Value.Data,
             Players = g.Where(anon => anon.Value.Directive == "td" && anon.Value.Data.Length > 1).Select(anon => new Player
             {
                 FirstName = GetFirstName(anon.Value.Data),
                 LastName = GetLastName(anon.Value.Data),
                 Positions = GetPosition(anon.Value.Data)
             }).ToList()
         }).ToList();
     var tempPlayers = data.SelectMany(t => t.Players.Where(p => p.LastName.ToLower() == "diprima").ToList()).ToList();
     foreach (var player in tempPlayers)
     {
         player.FirstName = "Keith";
     }
     return data;
 }
Beispiel #2
0
 public void GetGamesOverview(string gameUrl)
 {
     var tableData = HtmlParser.GetTableHtmlList(gameUrl, "table").Skip(1).FirstOrDefault();
     var elements = _parser.GetElementList(tableData).Where(e => e.Directive != null).ToList();
     var headersCount = elements.Count(e => e.Directive == "th");
     for (var i = 10; i < elements.Count; i += headersCount)
     {
         var dummyElement = new Element { Directive = "dummy", Data = "dummy" };
         elements.Insert(i, dummyElement);
         elements[i + 1].Data = elements[i + 1].Attributes.FirstOrDefault(e => e.Directive == "href").Data;
     }
     var gameOverviews = _parser.GetFinalObject<GameOverviewModel>(elements);
     var gameInfoList = new List<GameModel>();
     foreach (var gameOverview in gameOverviews)
     {
         var gameInfo = GetGameInfo(gameOverview.Status, gameOverview.Home, gameOverview.Visitor);
         gameInfoList.Add(gameInfo);
     }
 }