Ejemplo n.º 1
0
        private static void LoadRostersNewWeek()
        {
            try
            {
                NPGGFFLDataContext context = new NPGGFFLDataContext(ConfigurationManager.ConnectionStrings["NPGGFFLConnectionString"].ConnectionString);
                var TriggerDate = DateTime.Now.AddDays(-7);
                var lastSeasonWeek = context.SeasonWeeks.Where(sw => sw.StartDtm <= TriggerDate && sw.EndDtm >= TriggerDate).First();
                var currentSeasonWeek = context.SeasonWeeks.Where(sw => sw.StartDtm <= DateTime.Now && sw.EndDtm >= DateTime.Now).First();
                foreach (var o in context.Owners)
                {
                    var teamLastWeek = context.OwnerTeams.Where(ot => ot.SeasonWeekId == lastSeasonWeek.SeasonWeekId && ot.OwnerId == o.OwnerId);
                    var teamThisWeek = context.OwnerTeams.Where(ot => ot.SeasonWeekId == currentSeasonWeek.SeasonWeekId && ot.OwnerId == o.OwnerId);

                    if (teamThisWeek.Count() == 0)
                    {
                        foreach (var tlw in teamLastWeek)
                        {
                            OwnerTeams ownerTeam = new OwnerTeams { OwnerId = o.OwnerId, SeasonWeekId = currentSeasonWeek.SeasonWeekId, PlayerId = tlw.PlayerId, IsLocked = false, TeamId = tlw.TeamId };
                            context.OwnerTeams.InsertOnSubmit(ownerTeam);
                        }
                        context.SubmitChanges();
                    }
                }

            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 2
0
        public static void GetDefensiveTDs(NPGGFFLDataContext context, Games game)
        {
            var foxSeasonType = (game.SeasonWeeks.SeasonTypeId == 1 ? 3 : (game.SeasonWeeks.SeasonTypeId == 2 ? 1 : 2));    //preseason = 3, reg season = 1, postseason = 2
            var foxScheduleUrl = string.Format("{0}?season={1}&seasonType={2}&week={3}", new string[] { SCHEDULE_URL, game.SeasonWeeks.SeasonYear.ToString(), foxSeasonType.ToString(), game.SeasonWeeks.WeekNum.ToString() });
            var foxLeagueUrl = string.Format("{0}?season={1}", new string[] { LEAGUE_URL, game.SeasonWeeks.SeasonYear.ToString() });

            var leagueJson = JObject.Parse(HelperMethods.GetJsonFromUrl(foxLeagueUrl));
            var scheduleJson = JArray.Parse(HelperMethods.GetJsonFromUrl(foxScheduleUrl));

            var awayTeam = GetFoxTeam(leagueJson, game.AwayTeam.FoxAbbreviation.ToUpper());
            var homeTeam = GetFoxTeam(leagueJson, game.HomeTeam.FoxAbbreviation.ToUpper());
            var gameUrl = string.Format("{0}{1}&type=3", HOST, GetFoxBoxscoreUrl(scheduleJson, awayTeam, homeTeam));

            var html = HelperMethods.LoadHtmlFromUrl(gameUrl);
            var dom = new CQ(html, HtmlParsingMode.Document);

            var dTDs = dom["div[class*='wisfb_bsTeamStats']"].Find("tr[class*='wisfb_bstsTotal wisfb_bstsGroupTop']:contains('DEF TDs')");
            if (dTDs.Length > 0)
            {
                var awayDefensiveTDs = Convert.ToInt32(dTDs.Find("td[class*='wisfb_bstsStat']")[0].Cq().Html());
                var homeDefensiveTDs = Convert.ToInt32(dTDs.Find("td[class*='wisfb_bstsStat']")[1].Cq().Html());

                context.PlayerStats.Where(ps => ps.GameId == game.GameId && ps.PlayerId == game.AwayTeamId).First().DefensiveTDs = awayDefensiveTDs;
                context.PlayerStats.Where(ps => ps.GameId == game.GameId && ps.PlayerId == game.HomeTeamId).First().DefensiveTDs = homeDefensiveTDs;
                context.SubmitChanges();
            }
        }
Ejemplo n.º 3
0
        private static Players InsertPlayerById(NPGGFFLDataContext context, string playerId, string playerName)
        {
            var playerExists = context.Players.Where(p => p.NFLPlayerId.Equals(playerId)).FirstOrDefault();
            if (playerExists == null)
            {
                var html = HelperMethods.LoadHtmlFromUrl(string.Format(PLAYER_PROFILE_URL, playerId));
                CQ dom = new CQ(html, HtmlParsingMode.Document);
                playerName = dom["span[class*='player-name']"].Html().Replace("&nbsp;", string.Empty).Trim().ToUpper();

                playerExists = context.Players.Where(p => p.Name.ToUpper().Trim().Equals(playerName)).FirstOrDefault();

                if (playerExists != null)
                {
                    playerExists.NFLPlayerId = playerId;
                    context.SubmitChanges();
                }

                return playerExists;
            }
            else
            {
                return playerExists;
            }
        }
Ejemplo n.º 4
0
 private static PlayerRankings InsertPlayerRankById(NPGGFFLDataContext context, int playerId)
 {
     var playerRankExists = context.PlayerRankings.Where(p => p.PlayerId == playerId).FirstOrDefault();
     if (playerRankExists == null)
     {
         PlayerRankings pr = new PlayerRankings { PlayerId = playerId };
         context.PlayerRankings.InsertOnSubmit(pr);
         context.SubmitChanges();
         return context.PlayerRankings.Where(p => p.PlayerId == playerId).FirstOrDefault();
     }
     else
     {
         return playerRankExists;
     }
 }
Ejemplo n.º 5
0
        private static PlayerInjuryHistory InsertPlayerInjuryHistory(NPGGFFLDataContext context, int playerId, int injuryStatusId, string description, DateTime reportDtm)
        {
            var pihExists = context.PlayerInjuryHistories.Where(pih => pih.PlayerId == playerId && pih.ReportDtm == reportDtm && pih.InjuryStatusId == injuryStatusId).FirstOrDefault();
            if (pihExists == null)
            {
                PlayerInjuryHistory pih = new PlayerInjuryHistory
                {
                    PlayerId = playerId,
                    InjuryStatusId = injuryStatusId,
                    Description = description,
                    ReportDtm = reportDtm
                };

                context.PlayerInjuryHistories.InsertOnSubmit(pih);
                context.SubmitChanges();
                return context.PlayerInjuryHistories.Where(pih2 => pih2.PlayerId == playerId && pih2.ReportDtm == reportDtm && pih2.InjuryStatusId == injuryStatusId).First();
            }
            else
            {
                return pihExists;
            }
        }
Ejemplo 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;
            }
        }
Ejemplo n.º 7
0
        public static bool SaveLineup(NPGGFFLDataContext context, string fromAddress, string body, int seasonWeekId)
        {
            try
            {
                var weekDate = DateTime.Now;
                //var seasonWeek = context.SeasonWeeks.Where(sw2 => weekDate >= sw2.StartDtm && weekDate <= sw2.EndDtm).First();
                var seasonWeek = context.SeasonWeeks.Where(sw2 => sw2.SeasonWeekId == seasonWeekId).First();
                var ownerExists = context.Owners.Where(o => o.EmailAddress.ToUpper().Contains(fromAddress)).FirstOrDefault();
                if (ownerExists == null)
                {
                    return false;
                }
                else
                {
                    var lineupText = body.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);

                    List<NPGGFFL.Data.Players> lineup = new List<NPGGFFL.Data.Players>();
                    foreach (var line in lineupText)
                    {
                        if (!line.Trim().Equals(string.Empty))
                        {
                            Dictionary<int, int> playerMatches = new Dictionary<int, int>();
                            var words = line.Split(' ');
                            foreach (var word in words)
                            {
                                var playerFound = context.Players.Where(p => (p.Name.ToUpper().Contains(word.ToUpper()) || p.Alias.Contains(word.ToUpper())));
                                foreach (var player in playerFound)
                                {
                                    if (playerMatches.ContainsKey(player.PlayerId))
                                    {
                                        playerMatches[player.PlayerId]++;
                                    }
                                    else
                                    {
                                        playerMatches.Add(player.PlayerId, 1);
                                    }
                                }
                            }

                            if (playerMatches.Count() > 0)
                            {
                                var highestMatchCount = playerMatches.OrderByDescending(m => m.Value).First().Value;
                                if (playerMatches.Where(m => m.Value == highestMatchCount).Count() == 1)
                                {
                                    lineup.Add(context.Players.Where(p => p.PlayerId == playerMatches.Where(m => m.Value == highestMatchCount).First().Key).First());
                                }
                                else
                                {
                                    var distanceMatches = playerMatches.Where(m => m.Value == highestMatchCount).Select(m => new
                                    {
                                        PlayerId = m.Key,
                                        Distance = LevenshteinDistance.Compute((context.Players.Where(p => p.PlayerId == m.Key).First().Alias == null ? context.Players.Where(p => p.PlayerId == m.Key).First().Name : context.Players.Where(p => p.PlayerId == m.Key).First().Alias).ToUpper(), line.ToUpper())
                                    }).OrderBy(m => m.Distance);

                                    var bestMatch = distanceMatches.First();
                                    lineup.Add(context.Players.Where(p => p.PlayerId == bestMatch.PlayerId).First());
                                }
                            }
                        }
                    }

                    //load lineup
                    if (lineup.Count > 0)
                    {
                        var playerCount = context.OwnerTeams.Where(ot => ot.OwnerId == ownerExists.OwnerId && ot.SeasonWeekId == seasonWeek.SeasonWeekId).Count();
                        var unlockedPlayerCount = context.OwnerTeams.Where(ot => ot.OwnerId == ownerExists.OwnerId && ot.SeasonWeekId == seasonWeek.SeasonWeekId && ot.IsLocked == false).Count();

                        if (playerCount == 0 || unlockedPlayerCount > 0)
                        {
                            var ownerTieBreaker = context.OwnerTieBreakers.Where(otb => otb.OwnerId == ownerExists.OwnerId && otb.SeasonWeekId == seasonWeek.SeasonWeekId).FirstOrDefault();
                            if (ownerTieBreaker != null)
                            {
                                context.OwnerTieBreakers.DeleteOnSubmit(ownerTieBreaker);
                                context.SubmitChanges();
                            }
                            else
                            {
                                var vikingsTeam = context.Teams.Where(t => t.Abbreviation.Equals("min")).First();
                                var tieBreakerGame = context.Games.Where(g => g.SeasonWeekId == seasonWeek.SeasonWeekId && (g.HomeTeamId == vikingsTeam.TeamId || g.AwayTeamId == vikingsTeam.TeamId)).First();
                                NPGGFFL.Data.OwnerTieBreaker otb = new NPGGFFL.Data.OwnerTieBreaker {
                                    OwnerId = ownerExists.OwnerId,
                                    GameId = tieBreakerGame.GameId,
                                    SeasonWeekId = seasonWeek.SeasonWeekId,
                                    HomeScore = 1,
                                    AwayScore = 1,
                                    IsLocked = false
                                };

                                context.OwnerTieBreakers.InsertOnSubmit(otb);
                                context.SubmitChanges();
                            }

                            var ownerTeam = context.OwnerTeams.Where(ot => ot.OwnerId == ownerExists.OwnerId && ot.SeasonWeekId == seasonWeek.SeasonWeekId);
                            foreach (var ot in ownerTeam)
                            {
                                context.OwnerTeams.DeleteOnSubmit(ot);
                            }
                            context.SubmitChanges();

                            foreach (var player in lineup)
                            {
                                var ot = new NPGGFFL.Data.OwnerTeams
                                {
                                    OwnerId = ownerExists.OwnerId,
                                    PlayerId = player.PlayerId,
                                    SeasonWeekId = seasonWeek.SeasonWeekId,
                                    IsLocked = false
                                };
                                context.OwnerTeams.InsertOnSubmit(ot);
                            }
                            context.SubmitChanges();
                        }
                    }

                    return true;
                }
            }
            catch
            {
                return false;
            }
        }
Ejemplo n.º 8
0
 private static void LockPlayersForOwners(NPGGFFLDataContext context, IEnumerable<Players> playersInGame, int seasonWeekId)
 {
     foreach (var player in playersInGame)
     {
         var ownerTeamPlayers = context.OwnerTeams.Where(ot => ot.PlayerId == player.PlayerId && ot.SeasonWeekId == seasonWeekId);
         foreach (var otp in ownerTeamPlayers)
         {
             otp.IsLocked = true;
         }
         context.SubmitChanges();
     }
 }
Ejemplo n.º 9
0
        public static void UpdateStatsByBoxScore(Games game, NPGGFFLDataContext context)
        {
            var startDtm = DateTime.Now;
            var gameId = game.GameId;
            var url = string.Format("{0}{1}", BOXSCORE_URL, string.Format("?gameId={0}", gameId.ToString()));
            var html = HelperMethods.LoadHtmlFromUrl(url);
            CQ dom = new CQ(html, HtmlParsingMode.Document);

            if (dom["#main-container:contains('No Box Score Available')"].Length == 0)
            {
                #region Update Game Stats
                var gameStatus = dom["div[class*='game-status']"];
                if (gameStatus.Find(":contains('Final')").Length > 0)
                {
                    game.GameTimeRemaining = "Final";
                }
                else
                {
                    var gameTimeRemaining = dom["span[class*='game-time']"].Html().Trim();
                    game.GameTimeRemaining = gameTimeRemaining;
                }

                #region Update Team Stats
                //var awayTeamStats = GeneralScraperMethods.InsertTeamStatsByTeamIdGameId(context, game.AwayTeamId, game.GameId);
                var awayScore = dom["div[class*='competitors']"].Find("div[class*='team away']").Find("div[class*='score-container']").Find("div").Html().Trim();
                context.PlayerStats.Where(ps => ps.GameId == game.GameId && ps.PlayerId == game.HomeTeamId).First().PointsAllowed = Convert.ToInt32(awayScore);
                game.AwayPointsScored = Convert.ToInt32(awayScore);

                //var homeTeamStats = GeneralScraperMethods.InsertTeamStatsByTeamIdGameId(context, game.HomeTeamId, game.GameId);
                var homeScore = dom["div[class*='competitors']"].Find("div[class*='team home']").Find("div[class*='score-container']").Find("div").Html().Trim();
                game.HomePointsScored = Convert.ToInt32(homeScore);
                context.PlayerStats.Where(ps => ps.GameId == game.GameId && ps.PlayerId == game.AwayTeamId).First().PointsAllowed = Convert.ToInt32(homeScore);
                context.SubmitChanges();
                #endregion
                #endregion

                #region Update Player Stats
                Dictionary<int, Dictionary<string, string>> playerStatsData = new Dictionary<int, Dictionary<string, string>>();
                playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Passing");
                playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Rushing");
                playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Receiving");
                playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Fumbles");
                //playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Defensive");
                //playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Kick Returns");
                //playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Punt Returns");
                playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Kicking");
                //playerStatsData = GetPlayerStatsByTable(playerStatsData, dom, "Punting");

                foreach (var ps in playerStatsData)
                {
                    try
                    {
                        //Console.WriteLine(string.Format("{0}:{1}", "Fetching Player", ps.Key));
                        var player = InsertPlayerById(context, ps.Key, game);

                        //Console.WriteLine(string.Format("{0}:{1}", "Converting stats for player", player.Name));
                        var passingCompletionsAttempts = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PASSING", "C/ATT"));
                        var passingCompletions = (passingCompletionsAttempts.Contains("/") ? passingCompletionsAttempts.Split('/')[0].Trim() : "0");
                        var passingAttempts = (passingCompletionsAttempts.Contains("/") ? passingCompletionsAttempts.Split('/')[1].Trim() : "0");
                        var passingYards = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PASSING", "YDS"));
                        var passingTDS = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PASSING", "TD"));
                        var passingINTS = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PASSING", "INT"));
                        var passingSacks = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PASSING", "SACKS"));
                        var passingSacksTaken = (passingSacks.Contains("-") ? (passingSacks.Split('-')[0].Trim().Equals(string.Empty) ? "0" : passingSacks.Split('-')[0].Trim()) : "0");
                        var passingSackYardsLost = (passingSacks.Contains("-") ? (passingSacks.Split('-')[1].Trim().Equals(string.Empty) ? "0" : passingSacks.Split('-')[1].Trim()) : "0");
                        var rushingCarries = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "RUSHING", "CAR"));
                        var rushingYards = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "RUSHING", "YDS"));
                        var rushingTDs = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "RUSHING", "TD"));
                        var receivingReceptions = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "RECEIVING", "REC"));
                        var receivingYards = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "RECEIVING", "YDS"));
                        var receivingTDs = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "RECEIVING", "TD"));
                        var receivingTargets = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "RECEIVING", "TGTS"));
                        var fumbles = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "FUMBLES", "FUM"));
                        var fumblesLost = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "FUMBLES", "LOST"));
                        var fumblesReceovered = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "FUMBLES", "REC"));
                        var totalTackles = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "DEFENSIVE", "TOT"));
                        var soloTackles = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "DEFENSIVE", "SOLO"));
                        var sacks = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "DEFENSIVE", "SACKS"));
                        var tacklesForLoss = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "DEFENSIVE", "TFL"));
                        var passesDefended = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "DEFENSIVE", "PD"));
                        var qbHits = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "DEFENSIVE", "QB HTS"));
                        var defensiveTDs = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "DEFENSIVE", "TD"));
                        var kickReturns = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "KICK RETURNS", "NO"));
                        var kickReturnYards = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "KICK RETURNS", "YDS"));
                        var kickReturnTDs = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "KICK RETURNS", "TD"));
                        var puntReturns = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PUNT RETURNS", "NO"));
                        var puntReturnYards = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PUNT RETURNS", "YDS"));
                        var puntReturnTDs = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PUNT RETURNS", "TD"));
                        var fieldGoalsMadeAttempted = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "KICKING", "FG"));
                        var fieldGoalsMade = (fieldGoalsMadeAttempted.Contains("/") ? fieldGoalsMadeAttempted.Split('/')[0].Trim() : "0");
                        var fieldGoalsAttempted = (fieldGoalsMadeAttempted.Contains("/") ? fieldGoalsMadeAttempted.Split('/')[1].Trim() : "0");
                        var extraPointsMadeAttempted = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "KICKING", "XP"));
                        var extraPointsMade = (extraPointsMadeAttempted.Contains("/") ? extraPointsMadeAttempted.Split('/')[0].Trim() : "0");
                        var extraPointsAttempted = (extraPointsMadeAttempted.Contains("/") ? extraPointsMadeAttempted.Split('/')[1].Trim() : "0");
                        var kickingPointsScored = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "KICKING", "PTS"));
                        var punts = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PUNTING", "NO"));
                        var puntYards = FindDictionaryStatValue(ps.Value, string.Format("{0}-{1}", "PUNTING", "YDS"));

                        //Console.WriteLine(string.Format("{0}:{1}", "Checking for existing Player Stats for player", player.Name));
                        var playerStats = GeneralScraperMethods.InsertPlayerStatsByPlayerIdGameId(context, player.PlayerId, gameId);
                        GeneralScraperMethods.UpdatePlayerStats(context, playerStats, passingCompletions, passingAttempts, passingYards, passingTDS, passingINTS, passingSacksTaken, passingSackYardsLost, rushingCarries, rushingYards, rushingTDs, receivingReceptions, receivingYards, receivingTDs, receivingTargets, fumbles, fumblesLost, fumblesReceovered, totalTackles, soloTackles, sacks, tacklesForLoss, passesDefended, qbHits, defensiveTDs, kickReturns, kickReturnYards, kickReturnTDs, puntReturns, puntReturnYards, puntReturnTDs, fieldGoalsMade, fieldGoalsAttempted, extraPointsMade, extraPointsAttempted, kickingPointsScored, punts, puntYards);
                    }
                    catch (Exception)
                    {
                        throw;
                    }

                }

                context.SubmitChanges();
                #endregion
            }

            Console.WriteLine("Update Stats By Box Score took " + (DateTime.Now - startDtm).TotalSeconds);
        }
Ejemplo n.º 10
0
        public static void UpdatePlayerRankings(NPGGFFLDataContext context)
        {
            int overallRank = 1;
            for (int startIndex = 0; startIndex < 300; startIndex += 50)
            {
                var url = string.Format(SCORINGLEADERS_URL + "?&startIndex={0}", startIndex);
                var html = HelperMethods.LoadHtmlFromUrl(url);
                CQ dom = new CQ(html, HtmlParsingMode.Document);
                var players = dom["a[playerid][tab='null']"];

                foreach (var player in players)
                {
                    var playerId = Convert.ToInt32(player.Cq().Attr("playerid"));
                    var playerFound = InsertPlayerById(context, playerId);
                    var playerRankExists = InsertPlayerRankById(context, playerId);
                    playerRankExists.OverallRanking = overallRank;
                    overallRank++;
                }

                context.SubmitChanges();
            }
        }
Ejemplo n.º 11
0
 public static void InsertGamesForWeek(NPGGFFLDataContext context, int seasonWeekId)
 {
     SeasonWeeks seasonWeek = context.SeasonWeeks.Where(sw => sw.SeasonWeekId == seasonWeekId).First();
     var games = ESPNScraper.GetGames(context, seasonWeek.SeasonYear, seasonWeek.SeasonTypeId, seasonWeek.WeekNum);
     foreach (var game in games)
     {
         context.Games.InsertOnSubmit(game);
     }
     context.SubmitChanges();
 }
Ejemplo n.º 12
0
        private static void LockPlayerStatsThisWeek()
        {
            NPGGFFLDataContext context = new NPGGFFLDataContext(ConfigurationManager.ConnectionStrings["NPGGFFLConnectionString"].ConnectionString);
            var TriggerDate = DateTime.Now;
            var currentSeasonWeek = context.SeasonWeeks.Where(sw => sw.StartDtm <= TriggerDate && sw.EndDtm >= TriggerDate).First();

            UpdateGamesThisWeek(true);
            var gamesThisWeek = context.Games.Where(g => g.GameDtm >= currentSeasonWeek.StartDtm && g.GameDtm <= currentSeasonWeek.EndDtm);
            foreach (var ps in context.PlayerStats.Where(ps => gamesThisWeek.Select(g => g.GameId).Contains(ps.GameId)))
            {
                ps.IsFinal = true;
            }
            context.SubmitChanges();
        }
Ejemplo n.º 13
0
        private static void LockCurrentWeek()
        {
            try
            {
                NPGGFFLDataContext context = new NPGGFFLDataContext(ConfigurationManager.ConnectionStrings["NPGGFFLConnectionString"].ConnectionString);
                var TriggerDate = DateTime.Now;
                var currentSeasonWeek = context.SeasonWeeks.Where(sw => sw.StartDtm <= TriggerDate && sw.EndDtm >= TriggerDate).First();
                //var currentSeasonWeek = context.SeasonWeeks.Where(sw => sw.SeasonYear == 2015 && sw.SeasonTypeId == 2 && sw.WeekNum == 4).First();
                foreach (var ot in context.OwnerTeams.Where(ot => ot.SeasonWeekId == currentSeasonWeek.SeasonWeekId && ot.IsLocked == false))
                {
                    ot.IsLocked = true;
                }
                var gamesThisWeek = context.Games.Where(g => g.SeasonWeekId == currentSeasonWeek.SeasonWeekId && g.IsLocked == false);
                foreach (var g in gamesThisWeek)
                {
                    //var playersInGame = context.Players.Where(p => p.TeamId == g.HomeTeamId || p.TeamId == g.AwayTeamId);
                    //foreach (var player in playersInGame)
                    //{
                    //    var ownerTeamPlayers = context.OwnerTeams.Where(ot => ot.PlayerId == player.PlayerId && ot.SeasonWeekId == currentSeasonWeek.SeasonWeekId);
                    //    foreach (var otp in ownerTeamPlayers)
                    //    {
                    //        otp.IsLocked = true;
                    //    }
                    //}
                    g.IsLocked = true;
                }

                context.SubmitChanges();
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 14
0
        private static void UpdatePlayerRankings()
        {
            try
            {
                NPGGFFLDataContext context = new NPGGFFLDataContext(ConfigurationManager.ConnectionStrings["NPGGFFLConnectionString"].ConnectionString);
                var TriggerDate = DateTime.Now;
                var seasonWeek = context.SeasonWeeks.Where(sw => sw.StartDtm <= TriggerDate && sw.EndDtm >= TriggerDate).First();
                var playerRanks = NPGGFFLApi.Controllers.PlayerPoints.GetPlayerRankings(context, seasonWeek.SeasonYear, seasonWeek.SeasonTypeId);

                foreach (var rank in playerRanks)
                {
                    var playerRanksExists = context.PlayerRankings.Where(p => p.PlayerId == rank.PlayerId).FirstOrDefault();
                    if (playerRanksExists == null)
                    {
                        PlayerRankings pr = new PlayerRankings { PlayerId = rank.PlayerId, OverallRanking = Convert.ToInt32(rank.OverallRank), PositionalRanking = 10000, PassRanking = 10000, RushRanking = 10000 };
                        context.PlayerRankings.InsertOnSubmit(pr);
                    }
                    else
                    {
                        playerRanksExists.OverallRanking = Convert.ToInt32(rank.OverallRank);
                    }
                }
                context.SubmitChanges();

                foreach (var position in context.Positions.Where(po => (new string[] { "QB", "RB", "WR", "TE", "DST", "PK" }).Contains(po.Name)))
                {
                    var playerPositionRanks = NPGGFFLApi.Controllers.PlayerPoints.GetPlayerPositionalRankings(context, seasonWeek.SeasonYear, seasonWeek.SeasonTypeId, position.Name);

                    foreach (var rank in playerPositionRanks)
                    {
                        var playerRanksExists = context.PlayerRankings.Where(p => p.PlayerId == rank.PlayerId).FirstOrDefault();
                        if (playerRanksExists == null)
                        {
                            PlayerRankings pr = new PlayerRankings { PlayerId = rank.PlayerId, OverallRanking = 10000, PositionalRanking = Convert.ToInt32(rank.OverallRank), PassRanking = 10000, RushRanking = 10000 };
                            context.PlayerRankings.InsertOnSubmit(pr);
                        }
                        else
                        {
                            playerRanksExists.PositionalRanking = Convert.ToInt32(rank.OverallRank);
                        }
                    }

                }
                context.SubmitChanges();

                var defensiveRanks = NPGGFFLApi.Controllers.PlayerPoints.GetDefensiveRanks(context, seasonWeek.SeasonYear, seasonWeek.SeasonTypeId);
                foreach (var rank in defensiveRanks)
                {
                    var playerRanksExists = context.PlayerRankings.Where(p => p.PlayerId == rank.PlayerId).FirstOrDefault();
                    if (playerRanksExists == null)
                    {
                        PlayerRankings pr = new PlayerRankings { PlayerId = rank.PlayerId, OverallRanking = 10000, PositionalRanking = 10000, PassRanking = Convert.ToInt32(rank.PassRank), RushRanking = Convert.ToInt32(rank.RushRank) };
                        context.PlayerRankings.InsertOnSubmit(pr);
                    }
                    else
                    {
                        playerRanksExists.PassRanking = Convert.ToInt32(rank.PassRank);
                        playerRanksExists.RushRanking = Convert.ToInt32(rank.RushRank);
                    }
                }
                context.SubmitChanges();
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 15
0
        public static void GetPlayerTeams(NPGGFFLDataContext context)
        {
            var players = context.Players.Select(p => new {
                            PlayerName = p.Name,
                            PlayerId = p.PlayerId,
                            TeamId = p.TeamId,
                            LatestGameAwayTeamId = (p.PlayerStats.OrderByDescending(ps => ps.Games.SeasonWeekId).FirstOrDefault() == null ? 0 : p.PlayerStats.OrderByDescending(ps => ps.Games.SeasonWeekId).FirstOrDefault().Games.AwayTeamId),
                            LatestGameHomeTeamId = (p.PlayerStats.OrderByDescending(ps => ps.Games.SeasonWeekId).FirstOrDefault() == null ? 0 : p.PlayerStats.OrderByDescending(ps => ps.Games.SeasonWeekId).FirstOrDefault().Games.HomeTeamId),
                            Player = p
                        })
            .Where(p => p.LatestGameAwayTeamId != p.TeamId && p.LatestGameHomeTeamId != p.TeamId && p.LatestGameAwayTeamId != 0 && p.LatestGameHomeTeamId != 0)
            .Select(p => p.Player);

            foreach (var player in players)
            {
                var url = string.Format("{0}/{1}", PLAYER_URL, player.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-content']"].Find("h1").Html().Trim();
                    //position = dom["div[class*='player-bio']"].Find("ul[class*='general-info']").Find("li[class*='first']").Html().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)
                {
                    player.TeamId = playerTeam.TeamId;
                    context.SubmitChanges();
                }
                else
                {
                    player.TeamId = 35; //no team
                    context.SubmitChanges();
                }
            }
        }
Ejemplo n.º 16
0
 private static Position InsertPositionByName(NPGGFFLDataContext context, string positionName)
 {
     var positionExists = context.Positions.Where(p => p.Name.ToUpper().Equals(positionName.ToUpper())).FirstOrDefault();
     if (positionExists == null)
     {
         Position position = new Position();
         position.Name = positionName;
         context.Positions.InsertOnSubmit(position);
         context.SubmitChanges();
         return context.Positions.Where(p => p.Name.ToUpper().Equals(positionName.ToUpper())).FirstOrDefault();
     }
     else
     {
         return positionExists;
     }
 }
Ejemplo n.º 17
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);
        }
Ejemplo n.º 18
0
        private static void FindInterceptions(NPGGFFLDataContext context, int gameId)
        {
            Dictionary<int, int> teamInterceptionStats = new Dictionary<int, int>();
            var url = string.Format("{0}{1}", DRIVESUMMARY_URL, string.Format("?gameId={0}", gameId.ToString()));
            var html = HelperMethods.LoadHtmlFromUrl(url);
            CQ dom = new CQ(html, HtmlParsingMode.Document);

            var summaryTables = dom["table[class*='mod-data']"].Has("td:contains('Interception')");

            foreach (var st in summaryTables)
            {
                var teamName = st.Cq().Find("a").Attr("name");
                //var numInterceptions = st.Cq().Find("td:contains('Interception')");
                var gameExists = context.Games.Where(g => g.GameId == gameId).FirstOrDefault();
                if (gameExists != null)
                {
                    var findTeamIntercepted = context.Teams.Where(t => t.Name.ToUpper().Contains(teamName.ToUpper())).FirstOrDefault();
                    if (findTeamIntercepted != null)
                    {
                        var teamThatIntercepted = (gameExists.HomeTeamId == findTeamIntercepted.TeamId ? gameExists.AwayTeamId : gameExists.HomeTeamId);
                        if (!teamInterceptionStats.ContainsKey(teamThatIntercepted))
                        {
                            teamInterceptionStats.Add(teamThatIntercepted, 1);
                        }
                        else
                        {
                            teamInterceptionStats[teamThatIntercepted]++;
                        }
                    }
                }
            }

            foreach (var tss in teamInterceptionStats)
            {
                var playerTeamStats = context.PlayerStats.Where(ts => ts.PlayerId == tss.Key && ts.GameId == gameId).FirstOrDefault();
                if (playerTeamStats != null)
                {
                    playerTeamStats.DefensiveINTs = tss.Value;
                    context.SubmitChanges();
                }
            }
        }
Ejemplo n.º 19
0
        private static void FindSafeties(NPGGFFLDataContext context, int gameId)
        {
            Dictionary<int, int> teamSafetyStats = new Dictionary<int, int>();
            var url = string.Format("{0}{1}", PLAYBYPLAY_URL, string.Format("?gameId={0}", gameId.ToString()));
            //var url = string.Format("{0}{1}", DRIVESUMMARY_URL, string.Format("?gameId={0}", gameId.ToString()));
            var html = HelperMethods.LoadHtmlFromUrl(url);
            CQ dom = new CQ(html, HtmlParsingMode.Document);

            var summaryTables = dom["div[class*='accordion-header']"].Has("span[class*='headline']:contains('Safety')");
            //var summaryTables = dom["table[class*='mod-data']"].Has("td:contains('Safety')");

            foreach (var st in summaryTables)
            {
                var teamName = st.Cq().Find("img[class*='team-logo']").Attr("src").Split('/')[9].Trim().Replace(".png&h=100&w=100", string.Empty);
                //var teamName = st.Cq().Find("a").Attr("name");
                //var numSafeties = st.Cq().Find("td:contains('Safety')");
                var gameExists = context.Games.Where(g => g.GameId == gameId).FirstOrDefault();
                if (gameExists != null)
                {
                    var findTeamSafetied = context.Teams.Where(t => t.Abbreviation.ToUpper().Contains(teamName.ToUpper())).FirstOrDefault();
                    if (findTeamSafetied != null)
                    {
                        var teamScoredSafety = (gameExists.HomeTeamId == findTeamSafetied.TeamId ? gameExists.AwayTeamId : gameExists.HomeTeamId);
                        if (!teamSafetyStats.ContainsKey(teamScoredSafety))
                        {
                            teamSafetyStats.Add(teamScoredSafety, 1);
                        }
                        else
                        {
                            teamSafetyStats[teamScoredSafety]++;
                        }
                    }
                }
            }

            foreach (var tss in teamSafetyStats)
            {
                var playerTeamStats = context.PlayerStats.Where(ts => ts.PlayerId == tss.Key && ts.GameId == gameId).FirstOrDefault();
                if (playerTeamStats != null)
                {
                    playerTeamStats.Safeties = tss.Value;
                    context.SubmitChanges();
                }
            }
        }
Ejemplo n.º 20
0
        private static void UpdateStats(Games game, NPGGFFLDataContext context, string eid, JObject gameCenterJson)
        {
            #region Update Game Stats
            var gameStatus = gameCenterJson[eid]["qtr"].Value<string>();
            if (gameStatus.Equals("Final"))
            {
                game.GameTimeRemaining = "Final";
                game.IsFinal = 1;
            }
            else
            {
                var gameTimeRemaining = gameCenterJson[eid]["clock"].Value<string>();
                game.GameTimeRemaining = gameTimeRemaining;
            }
            #region Update Team Stats
            var awayScore = gameCenterJson[eid]["away"]["score"]["T"].Value<int>(); ;
            context.PlayerStats.Where(ps => ps.GameId == game.GameId && ps.PlayerId == game.HomeTeamId).First().PointsAllowed = awayScore;
            game.AwayPointsScored = awayScore;

            var homeScore = gameCenterJson[eid]["home"]["score"]["T"].Value<int>();
            context.PlayerStats.Where(ps => ps.GameId == game.GameId && ps.PlayerId == game.AwayTeamId).First().PointsAllowed = homeScore;
            game.HomePointsScored = homeScore;
            context.SubmitChanges();

            #endregion

            #endregion

            #region Get Home Stats
            var hpassing = gameCenterJson[eid]["home"]["stats"]["passing"];
            var hrushing = gameCenterJson[eid]["home"]["stats"]["rushing"];
            var hreceiving = gameCenterJson[eid]["home"]["stats"]["receiving"];
            var hfumbles = gameCenterJson[eid]["home"]["stats"]["fumbles"];
            var hkicking = gameCenterJson[eid]["home"]["stats"]["kicking"];
            //var hpunting = gameCenterJson[eid]["home"]["stats"]["punting"];
            //var hkickret = gameCenterJson[eid]["home"]["stats"]["kickret"];
            //var hpuntret = gameCenterJson[eid]["home"]["stats"]["puntret"];
            //var hdefense = gameCenterJson[eid]["home"]["stats"]["defense"];
            //var hteam = gameCenterJson[eid]["home"]["stats"]["team"];
            ProcessPlayerStats(context, hpassing, "passing", game.GameId);
            ProcessPlayerStats(context, hrushing, "rushing", game.GameId);
            ProcessPlayerStats(context, hreceiving, "receiving", game.GameId);
            ProcessPlayerStats(context, hfumbles, "fumbles", game.GameId);
            ProcessPlayerStats(context, hkicking, "kicking", game.GameId);
            //ProcessPlayerStats(context, hpunting, "punting", game.GameId);
            //ProcessPlayerStats(context, hkickret, "kickret", game.GameId);
            //ProcessPlayerStats(context, hpuntret, "puntret", game.GameId);
            //ProcessPlayerStats(context, hdefense, "defense", game.GameId);
            //ProcessPlayerStats(context, hteam);
            #endregion

            #region Get Away Stats
            var apassing = gameCenterJson[eid]["away"]["stats"]["passing"];
            var arushing = gameCenterJson[eid]["away"]["stats"]["rushing"];
            var areceiving = gameCenterJson[eid]["away"]["stats"]["receiving"];
            var afumbles = gameCenterJson[eid]["away"]["stats"]["fumbles"];
            var akicking = gameCenterJson[eid]["away"]["stats"]["kicking"];
            //var apunting = gameCenterJson[eid]["away"]["stats"]["punting"];
            //var akickret = gameCenterJson[eid]["away"]["stats"]["kickret"];
            //var apuntret = gameCenterJson[eid]["away"]["stats"]["puntret"];
            //var adefense = gameCenterJson[eid]["away"]["stats"]["defense"];
            //var ateam = gameCenterJson[eid]["away"]["stats"]["team"];
            ProcessPlayerStats(context, apassing, "passing", game.GameId);
            ProcessPlayerStats(context, arushing, "rushing", game.GameId);
            ProcessPlayerStats(context, areceiving, "receiving", game.GameId);
            ProcessPlayerStats(context, afumbles, "fumbles", game.GameId);
            ProcessPlayerStats(context, akicking, "kicking", game.GameId);
            //ProcessPlayerStats(context, apunting, "punting", game.GameId);
            //ProcessPlayerStats(context, akickret, "kickret", game.GameId);
            //ProcessPlayerStats(context, apuntret, "puntret", game.GameId);
            //ProcessPlayerStats(context, adefense, "defense", game.GameId);
            //ProcessPlayerStats(context, ateam);
            #endregion
        }
Ejemplo n.º 21
0
 private static InjuryStatus InsertInjuryStatusByName(NPGGFFLDataContext context, string injuryStatusName)
 {
     var injuryStatusExists = context.InjuryStatus.Where(i => i.Name.ToUpper().Equals(injuryStatusName.ToUpper())).FirstOrDefault();
     if (injuryStatusExists == null)
     {
         InjuryStatus inj = new InjuryStatus
         {
             Name = injuryStatusName,
             Abbreviation = injuryStatusName.Substring(0,1)
         };
         context.InjuryStatus.InsertOnSubmit(inj);
         context.SubmitChanges();
         return context.InjuryStatus.Where(i => i.Name.ToUpper().Equals(injuryStatusName.ToUpper())).First();
     }
     else
     {
         return injuryStatusExists;
     }
 }
Ejemplo n.º 22
0
        private static void ProcessPlayerStats(NPGGFFLDataContext context, JToken stats, string type, int gameId)
        {
            foreach (var stat in stats.Children())
            {
                var playerId = ((JProperty)stat).Name;
                var playerRecord = stat.Children().First();
                var playerName = playerRecord["name"].Value<string>();
                var player = InsertPlayerById(context, playerId, playerName);
                if (player != null)
                {
                    var ps = GeneralScraperMethods.InsertPlayerStatsByPlayerIdGameId(context, player.PlayerId, gameId);

                    #region Parse Stats
                    var passingCompletions = ps.PassingCompletions.ToString();
                    var passingAttempts = ps.PassingAttempts.ToString();
                    var passingYards = ps.PassingYards.ToString();
                    var passingTDS = ps.PassingTDs.ToString();
                    var passingINTS = ps.PassingINTs.ToString();
                    var passingSacksTaken = ps.SacksTaken.ToString();
                    var passingSackYardsLost = ps.SackYardsLost.ToString();
                    var rushingCarries = ps.RushingCarries.ToString();
                    var rushingYards = ps.RushingYards.ToString();
                    var rushingTDs = ps.RushingTDs.ToString();
                    var receivingReceptions = ps.ReceivingReceptions.ToString();
                    var receivingYards = ps.ReceivingYards.ToString();
                    var receivingTDs = ps.ReceivingTDs.ToString();
                    var receivingTargets = ps.ReceivingTargets.ToString();
                    var fumbles = ps.Fumbles.ToString();
                    var fumblesLost = ps.FumblesLost.ToString();
                    var fumblesReceovered = ps.FumblesRecovered.ToString();
                    var totalTackles = ps.TotalTackles.ToString();
                    var soloTackles = ps.SoloTackles.ToString();
                    var sacks = ps.Sacks.ToString();
                    var tacklesForLoss = ps.TacklesForLoss.ToString();
                    var passesDefended = ps.PassesDefended.ToString();
                    var qbHits = ps.QBHits.ToString();
                    var defensiveTDs = ps.DefensiveTDs.ToString();
                    var kickReturns = ps.KickReturns.ToString();
                    var kickReturnYards = ps.KickReturnYards.ToString();
                    var kickReturnTDs = ps.KickReturnTDs.ToString();
                    var puntReturns = ps.PuntReturns.ToString();
                    var puntReturnYards = ps.PuntReturnYards.ToString();
                    var puntReturnTDs = ps.PuntReturnTDs.ToString();
                    var fieldGoalsMade = ps.FieldGoalsMade.ToString();
                    var fieldGoalsAttempted = ps.FieldGoalAttempts.ToString();
                    var extraPointsMade = ps.ExtraPointsMade.ToString();
                    var extraPointsAttempted = ps.ExtraPointAttempts.ToString();
                    var kickingPointsScored = ps.KickingPointsScored.ToString();
                    var punts = ps.Punts.ToString();
                    var puntYards = ps.PuntYards.ToString();
                    var twoPointConversions = ps.TwoPointConversions.ToString();

                    switch (type)
                    {
                        case "passing":
                            passingCompletions = playerRecord["cmp"].Value<string>();
                            passingAttempts = playerRecord["att"].Value<string>();
                            passingYards = playerRecord["yds"].Value<string>();
                            passingTDS = playerRecord["tds"].Value<string>();
                            passingINTS = playerRecord["ints"].Value<string>();
                            twoPointConversions = playerRecord["twoptm"].Value<string>();
                            break;
                        case "rushing":
                            rushingCarries = playerRecord["att"].Value<string>();
                            rushingYards = playerRecord["yds"].Value<string>();
                            rushingTDs = playerRecord["tds"].Value<string>();
                            twoPointConversions = playerRecord["twoptm"].Value<string>();
                            break;
                        case "receiving":
                            receivingReceptions = playerRecord["rec"].Value<string>();
                            receivingYards = playerRecord["yds"].Value<string>();
                            receivingTDs = playerRecord["tds"].Value<string>();
                            twoPointConversions = playerRecord["twoptm"].Value<string>();
                            break;
                        case "fumbles":
                            fumbles = playerRecord["tot"].Value<string>();
                            fumblesLost = playerRecord["lost"].Value<string>();
                            fumblesReceovered = playerRecord["trcv"].Value<string>();
                            break;
                        case "kicking":
                            fieldGoalsMade = playerRecord["fgm"].Value<string>();
                            fieldGoalsAttempted = playerRecord["fga"].Value<string>();
                            extraPointsMade = playerRecord["xpmade"].Value<string>();
                            extraPointsAttempted = playerRecord["xpa"].Value<string>();
                            kickingPointsScored = (playerRecord["totpfg"].Value<int>() + playerRecord["xptot"].Value<int>()).ToString();
                            break;
                        case "punting":
                            punts = playerRecord["pts"].Value<string>();
                            puntYards = playerRecord["yds"].Value<string>();
                            break;
                        case "kickret":
                            kickReturns = playerRecord["ret"].Value<string>();
                            kickReturnTDs = playerRecord["tds"].Value<string>();
                            break;
                        case "puntret":
                            puntReturns = playerRecord["ret"].Value<string>();
                            puntReturnTDs = playerRecord["tds"].Value<string>();
                            break;
                        case "defense":
                            totalTackles = playerRecord["tkl"].Value<string>();
                            sacks = playerRecord["sk"].Value<string>();
                            break;
                        default:
                            break;
                    }

                    if (!ps.TwoPointConversions.ToString().Equals(twoPointConversions))
                    {
                        ps.TwoPointConversions = Convert.ToInt32(twoPointConversions);
                        context.SubmitChanges();
                    }
                    #endregion

                    GeneralScraperMethods.UpdatePlayerStats(context, ps, passingCompletions, passingAttempts, passingYards, passingTDS, passingINTS, passingSacksTaken, passingSackYardsLost, rushingCarries, rushingYards, rushingTDs, receivingReceptions, receivingYards, receivingTDs, receivingTargets, fumbles, fumblesLost, fumblesReceovered, totalTackles, soloTackles, sacks, tacklesForLoss, passesDefended, qbHits, defensiveTDs, kickReturns, kickReturnYards, kickReturnTDs, puntReturns, puntReturnYards, puntReturnTDs, fieldGoalsMade, fieldGoalsAttempted, extraPointsMade, extraPointsAttempted, kickingPointsScored, punts, puntYards);
                }

            }
        }
Ejemplo n.º 23
0
        private static void UpdateGameStartTimes()
        {
            NPGGFFLDataContext context = new NPGGFFLDataContext(ConfigurationManager.ConnectionStrings["NPGGFFLConnectionString"].ConnectionString);
            var TriggerDate = DateTime.Now;
            var currentSeasonWeek = context.SeasonWeeks.Where(sw => sw.StartDtm <= TriggerDate && sw.EndDtm >= TriggerDate).First();

            foreach (var game in ESPNScraper.GetGames(context, currentSeasonWeek.SeasonYear, currentSeasonWeek.SeasonTypeId, currentSeasonWeek.WeekNum))
            {
                var gameExists = context.Games.Where(g => g.GameId == game.GameId).FirstOrDefault();
                if (gameExists != null)
                {
                    gameExists.GameDtm = game.GameDtm;
                }
            }

            context.SubmitChanges();
        }