예제 #1
0
        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;
        }
예제 #2
0
        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;
        }
예제 #3
0
 partial void UpdatePosition(Position instance);
예제 #4
0
 partial void DeletePosition(Position instance);
예제 #5
0
 partial void InsertPosition(Position instance);