Exemplo n.º 1
0
 partial void UpdatePlayers(Players instance);
Exemplo n.º 2
0
 partial void DeletePlayers(Players instance);
Exemplo n.º 3
0
 partial void InsertPlayers(Players instance);
Exemplo n.º 4
0
		private void detach_Players(Players entity)
		{
			this.SendPropertyChanging();
			entity.Position = null;
		}
Exemplo n.º 5
0
		private void attach_Players(Players entity)
		{
			this.SendPropertyChanging();
			entity.Position = this;
		}
Exemplo n.º 6
0
        private static Players InsertPlayerById(NPGGFFLDataContext context, int playerId, Games game)
        {
            var playerExists = context.Players.Where(p => p.PlayerId == playerId).FirstOrDefault();
            if (playerExists == null)
            {
                var url = string.Format("{0}/{1}", PLAYER_URL, playerId.ToString());
                var html = HelperMethods.LoadHtmlFromUrl(url);
                CQ dom = new CQ(html, HtmlParsingMode.Document);
                var playerName = string.Empty;
                var position = string.Empty;
                var team = string.Empty;

                try
                {
                    playerName = dom["div[class*='mod-split-menu']"].First().Find("a[class*='btn-split-btn']").First().Html().Trim();
                    position = dom["div[class*='player-bio']"].Find("ul[class*='general-info']").Find("li").First().Html().Split(' ')[1].Trim();
                    team = dom["ul[class*='general-info']"].Find("a[href*='/team/']").Attr("href").Split('/')[7].Trim();
                }
                catch { }

                Players player = new Players();
                player.PlayerId = playerId;
                player.Name = playerName;

                var playerTeam = context.Teams.Where(t => t.Abbreviation.ToUpper().Equals(team.ToUpper())).FirstOrDefault();
                if (playerTeam != null)
                {
                    player.TeamId = playerTeam.TeamId;
                }
                else
                {
                    player.TeamId = 35; //no team
                }

                player.PositionId = InsertPositionByName(context, position).PositionId;
                context.Players.InsertOnSubmit(player);
                context.SubmitChanges();
                return context.Players.Where(p => p.PlayerId == playerId).FirstOrDefault();
            }
            else if (playerExists.TeamId != game.HomeTeamId && playerExists.TeamId != game.AwayTeamId)
            {
                var url = string.Format("{0}/{1}", PLAYER_URL, playerId.ToString());
                var html = HelperMethods.LoadHtmlFromUrl(url);
                CQ dom = new CQ(html, HtmlParsingMode.Document);
                var playerName = string.Empty;
                var position = string.Empty;
                var team = string.Empty;

                try
                {
                    playerName = dom["div[class*='mod-split-menu']"].First().Find("a[class*='btn-split-btn']").First().Html().Trim();
                    position = dom["div[class*='player-bio']"].Find("ul[class*='general-info']").Find("li").First().Html().Split(' ')[1].Trim();
                    team = dom["ul[class*='general-info']"].Find("a[href*='/team/']").Attr("href").Split('/')[7].Trim();
                }
                catch { }

                var playerTeam = context.Teams.Where(t => t.Abbreviation.ToUpper().Equals(team.ToUpper())).FirstOrDefault();
                if (playerTeam != null)
                {
                    playerExists.TeamId = playerTeam.TeamId;
                }
                else
                {
                    playerExists.TeamId = 35; //no team
                }

                context.SubmitChanges();
                return playerExists;
            }
            else
            {
                return playerExists;
            }
        }
Exemplo n.º 7
0
        public static void UpdateStatsPlayByPlay(Games game, NPGGFFLDataContext context)
        {
            var startDtm = DateTime.Now;
            var gameId = game.GameId;
            var url = string.Format("{0}{1}", LIVE_URL, string.Format("?gameId={0}", gameId.ToString()));
            var html = HelperMethods.LoadHtmlFromUrl(url);
            CQ dom = new CQ(html, HtmlParsingMode.Document);

            if (dom["#gamepackage-play-by-play:contains('No Drives')"].Length == 0)
            {
                #region Update Two Point Conversions
                Dictionary<int, int> twoPointConversionPlayerList = new Dictionary<int, int>();
                var twoPointConversionRows = dom["div[class*='headline']:contains('TWO-POINT')"];
                foreach (var tpcr in twoPointConversionRows)
                {
                    var tpcrHTML = tpcr.Cq().Html();
                    if (tpcrHTML.Contains("ATTEMPT SUCCEEDS"))
                    {
                        var tpcStart = tpcrHTML.IndexOf("TWO-POINT CONVERSION ATTEMPT.") + 29;
                        var tpcEnd = tpcrHTML.IndexOf("ATTEMPT SUCCEEDS");
                        var twoPointText = tpcrHTML.Substring(tpcStart, tpcEnd - tpcStart);
                        var splitIntoWords = twoPointText.Split(' ');

                        foreach (var word in splitIntoWords.Where(w => w.Contains(".")))
                        {
                            var findPlayer = context.Players.Where(p => p.PlayerStats.Where(ps => ps.PlayerId == p.PlayerId && ps.GameId == gameId).Count() != 0 && p.Name.Substring(0, 1).ToUpper() == word.Split('.')[0].Trim().ToUpper() && p.Name.ToUpper().Contains(word.Split('.')[1].Trim().ToUpper()));
                            if (findPlayer.Count() > 1)
                            {
                                var bestMatch = new Players();
                                var shortestDistance = 100;
                                foreach (var fp in findPlayer)
                                {
                                    if (HelperMethods.LevenshteinDistance.Compute(fp.Name.ToUpper(), word.ToUpper()) < shortestDistance)
                                    {
                                        shortestDistance = HelperMethods.LevenshteinDistance.Compute(fp.Name.ToUpper(), word.ToUpper());
                                        bestMatch = fp;
                                    }
                                }

                                if (!twoPointConversionPlayerList.ContainsKey(bestMatch.PlayerId))
                                {
                                    twoPointConversionPlayerList.Add(bestMatch.PlayerId, 1);
                                }
                                else
                                {
                                    twoPointConversionPlayerList[bestMatch.PlayerId]++;
                                }
                            }
                            else if (findPlayer.Count() == 1)
                            {
                                if (!twoPointConversionPlayerList.ContainsKey(findPlayer.First().PlayerId))
                                {
                                    twoPointConversionPlayerList.Add(findPlayer.First().PlayerId, 1);
                                }
                                else
                                {
                                    twoPointConversionPlayerList[findPlayer.First().PlayerId]++;
                                }
                            }
                        }
                    }
                }

                foreach (var tpc in twoPointConversionPlayerList)
                {
                    var playerStats = context.PlayerStats.Where(ps => ps.PlayerId == tpc.Key && ps.GameId == gameId).FirstOrDefault();
                    if (playerStats != null)
                    {
                        playerStats.TwoPointConversions = tpc.Value;
                        context.SubmitChanges();
                    }
                }
                #endregion

                #region Update Safeties
                FindSafeties(context, gameId);
                #endregion

                #region Update Game Progress
                var gameStatus = dom["div[class*='game-status']"].Has("span:contains('Final')");
                if (gameStatus.Length > 0)
                {
                    game.IsFinal = 1;
                    context.SubmitChanges();
                }
                else
                {
                    var timeRemaining = dom["span[class*='game-time']"].Html();
                    game.GameTimeRemaining = timeRemaining;
                    context.SubmitChanges();
                }
                #endregion
            }

            Console.WriteLine("Update Stats Play By Play took " + (DateTime.Now - startDtm).TotalSeconds);
        }