public Player GetPlayerProfile(string playerId) { var playerProfileHtml = HelperMethods.LoadHtmlFromUrl("http://www.nfl.com/players/profile?id=" + playerId); CQ dom = new CQ(playerProfileHtml, HtmlParsingMode.Document); var hrefStart = playerProfileHtml.IndexOf("canonical") + 17; var hrefEnd = playerProfileHtml.IndexOf("\"", hrefStart); var canonical = playerProfileHtml.Substring(hrefStart, hrefEnd - hrefStart); var profileId = canonical.Split('/')[5]; Player profile = new Player(); profile.PlayerId = Convert.ToInt32(profileId); profile.NFLId = (playerId.Contains("-") ? playerId : profileId); profile.Name = dom["span[class='player-name']"].Html().Replace(" ", string.Empty).Trim(); profile.ESPNId = GetESPNPlayerId(profile.Name); profile.TeamId = (dom["p[class='player-team-links']"].Find("a[href*='team=']").FirstOrDefault() != null ? dom["p[class='player-team-links']"].Find("a[href*='team=']").Attr("href").Split('=')[1].Trim().ToLower() : "fa"); profile.PositionId = (dom["span[class='player-number']"].FirstOrDefault() != null ? dom["span[class='player-number']"].Html().Split(' ')[1].Trim() : "None"); profile.OverallRanking = 10000; profile.PositionalRanking = 10000; profile.PassRanking = 10000; profile.RushRanking = 10000; profile.ESBId = (!playerId.Contains("-") ? playerId : string.Empty); var positionExists = context.Positions.Where(po => po.PositionId == profile.PositionId).FirstOrDefault(); if (positionExists == null) { Position pos = new Position { PositionId = profile.PositionId, MaxPerTeam = 0, LineupPriority = 100 }; context.Positions.InsertOnSubmit(pos); context.SubmitChanges(); } var playerExists = context.Players.Where(p => p.PlayerId == Convert.ToInt32(profileId)).FirstOrDefault(); if (playerExists == null) { context.Players.InsertOnSubmit(profile); context.SubmitChanges(); playerExists = context.Players.Where(p => p.PlayerId == Convert.ToInt32(profileId)).FirstOrDefault(); } else if (playerExists != null && (playerExists.TeamId != profile.TeamId || playerExists.NFLId != profile.NFLId || playerExists.ESBId != profile.ESBId)) { context.ExecuteCommand(string.Format("update player set teamid = '{0}', nflid = '{1}', esbid = '{2}' where playerid = {3}", profile.TeamId, profile.NFLId, profile.ESBId, playerExists.PlayerId)); } return playerExists; }
public Player GetPlayerProfileByInjuryId(string playerId) { var playerProfileHtml = HelperMethods.LoadHtmlFromUrl("http://www.nfl.com/players/profile?id=" + playerId); CQ dom = new CQ(playerProfileHtml, HtmlParsingMode.Document); var hrefStart = playerProfileHtml.IndexOf("canonical") + 17; var hrefEnd = playerProfileHtml.IndexOf("\"", hrefStart); var canonical = playerProfileHtml.Substring(hrefStart, hrefEnd - hrefStart); var profileId = canonical.Split('/')[5]; var playerExists = context.Players.Where(p => p.PlayerId == Convert.ToInt32(profileId)).FirstOrDefault(); if (playerExists == null) { Player profile = new Player(); profile.PlayerId = Convert.ToInt32(profileId); profile.NFLId = profileId; profile.NFLInjuryPlayerId = playerId; profile.Name = dom["span[class='player-name']"].Html().Replace(" ", string.Empty).Trim(); profile.ESPNId = GetESPNPlayerId(profile.Name); profile.TeamId = dom["p[class='player-team-links']"].Find("a[href*='team=']").Attr("href").Split('=')[1].Trim().ToLower(); profile.PositionId = dom["span[class='player-number']"].Html().Split(' ')[1].Trim(); profile.OverallRanking = 10000; profile.PositionalRanking = 10000; profile.PassRanking = 10000; profile.RushRanking = 10000; var positionExists = context.Positions.Where(po => po.PositionId == profile.PositionId).FirstOrDefault(); if (positionExists == null) { Position pos = new Position { PositionId = profile.PositionId, MaxPerTeam = 0, LineupPriority = 100 }; context.Positions.InsertOnSubmit(pos); context.SubmitChanges(); } context.Players.InsertOnSubmit(profile); context.SubmitChanges(); playerExists = context.Players.Where(p => p.PlayerId == Convert.ToInt32(profileId)).FirstOrDefault(); } return playerExists; }
partial void UpdatePosition(Position instance);
partial void DeletePosition(Position instance);
partial void InsertPosition(Position instance);