private static List <Nhl_Players_Bio_Skater> UpdateSeason(int year, NhlSeasonType nhlSeasonType, bool saveToDb) { // Get HTML rows NhlPlayersBioSkater nhl = new NhlPlayersBioSkater(); List <HtmlNode> rows = nhl.GetResultsForSeasonType(year, nhlSeasonType); // Parse into a list List <Nhl_Players_Bio_Skater> results = new List <Nhl_Players_Bio_Skater>(); foreach (HtmlNode row in rows) { Nhl_Players_Bio_Skater result = NhlPlayersBioSkater.MapHtmlRowToModel(row, nhlSeasonType, year); if (null != result) { results.Add(result); } } // Update DB if (saveToDb) { NhlPlayersBioSkater.AddOrUpdateDb(results); } return(results); }
private static Nhl_Players_Bio_Skater MapHtmlRowToModel(HtmlNode row, NhlSeasonType nhlSeasonType, int year) { HtmlNodeCollection tdNodes = row.SelectNodes(@"./td"); Nhl_Players_Bio_Skater model = new Nhl_Players_Bio_Skater(); model.NhlSeasonType = nhlSeasonType; model.Year = year; model.Number = ConvertStringToInt(tdNodes[0].InnerText); model.Name = tdNodes[1].InnerText; model.Team = tdNodes[2].InnerText; model.Position = tdNodes[3].InnerText; model.DateOfBirth = Convert.ToDateTime(tdNodes[4].InnerText.Replace("'", "/")); model.BirthCity = tdNodes[5].InnerText; model.StateOrProvince = tdNodes[6].InnerText; model.BirthCountry = tdNodes[7].InnerText; model.HeightInches = ConvertStringToInt(tdNodes[8].InnerText); model.WeightLbs = ConvertStringToInt(tdNodes[9].InnerText); model.Shoots = tdNodes[10].InnerText; model.DraftYear = ConvertStringToInt(tdNodes[11].InnerText); model.DraftRound = ConvertStringToInt(tdNodes[12].InnerText); model.DraftOverall = ConvertStringToInt(tdNodes[13].InnerText); model.Rookie = tdNodes[14].InnerText; model.GamesPlayed = ConvertStringToInt(tdNodes[15].InnerText); model.Goals = ConvertStringToInt(tdNodes[16].InnerText); model.Assists = ConvertStringToInt(tdNodes[17].InnerText); model.Points = ConvertStringToInt(tdNodes[18].InnerText); model.PlusMinus = ConvertStringToInt(tdNodes[19].InnerText); model.PIM = ConvertStringToInt(tdNodes[20].InnerText); string toi = tdNodes[21].InnerText; string[] toiParts = toi.Split(':'); if (toiParts.Length == 2) { int toiMinutes = ConvertStringToInt(toiParts[0]); int toiSeconds = ConvertStringToInt(toiParts[1]); model.ToiSecondsPerGame = toiMinutes * 60 + toiSeconds; } else if (toiParts.Length == 1) { int toiSeconds = ConvertStringToInt(toiParts[0]); model.ToiSecondsPerGame = toiSeconds; } else { model.ToiSecondsPerGame = 0; } return(model); }