Ejemplo n.º 1
0
        private static Nhl_Games_Summary MapHtmlRowToModel(HtmlNode row, NhlSeasonType nhlSeasonType)
        {
            HtmlNodeCollection tdNodes = row.SelectNodes(@"./td");

            Nhl_Games_Summary model = new Nhl_Games_Summary();

            model.NhlSeasonType = nhlSeasonType;
            model.Date          = Convert.ToDateTime(tdNodes[0].InnerText.Replace("'", "/"));
            model.Year          = NhlModelHelper.GetSeason(model.Date).Item2;

            model.Visitor      = tdNodes[1].InnerText;
            model.VisitorScore = ConvertStringToInt(tdNodes[2].InnerText);
            model.Home         = tdNodes[3].InnerText;
            model.HomeScore    = ConvertStringToInt(tdNodes[4].InnerText);
            model.OS           = tdNodes[5].InnerText;
            model.WGoalie      = tdNodes[6].InnerText;
            model.WGoal        = tdNodes[7].InnerText;
            model.VisitorShots = ConvertStringToInt(tdNodes[8].InnerText);
            model.VisitorPPGF  = ConvertStringToInt(tdNodes[9].InnerText);
            model.VisitorPPOpp = ConvertStringToInt(tdNodes[10].InnerText);
            model.VisitorPIM   = ConvertStringToInt(tdNodes[11].InnerText);
            model.HomeShots    = ConvertStringToInt(tdNodes[12].InnerText);
            model.HomePPGF     = ConvertStringToInt(tdNodes[13].InnerText);
            model.HomePPOpp    = ConvertStringToInt(tdNodes[14].InnerText);
            model.HomePIM      = ConvertStringToInt(tdNodes[15].InnerText);
            model.Attendance   = ConvertStringToInt(tdNodes[16].InnerText.Replace(",", String.Empty));

            return(model);
        }
Ejemplo n.º 2
0
        public static void UpdateSeason([Optional] int year, [Optional] bool forceOverwrite)
        {
            year = NhlModelHelper.SetDefaultYear(year);

            List <Nhl_Games_Rtss> models;

            using (SportsDataContext db = new SportsDataContext())
            {
                models = (from m in db.Nhl_Games_Rtss_DbSet
                          where
                          m.Year == year
                          select m).ToList();
            }

            // Retrieve the links of the blobs
            Dictionary <Uri, string> summaryItems = new Dictionary <Uri, string>();
            Dictionary <Uri, string> rosterItems  = new Dictionary <Uri, string>();

            foreach (Nhl_Games_Rtss m in models)
            {
                // Game Summary
                if (Uri.IsWellFormedUriString(m.GameLink, UriKind.Absolute))
                {
                    summaryItems.Add(new Uri(m.GameLink), m.Id.ToString());
                }

                // Roster
                if (Uri.IsWellFormedUriString(m.RosterLink, UriKind.Absolute))
                {
                    rosterItems.Add(new Uri(m.RosterLink), m.Id.ToString());
                }
            }
            HtmlBlob.GetAndStoreHtmlBlobs(HtmlBlobType.NhlGame, summaryItems, forceOverwrite);
            HtmlBlob.GetAndStoreHtmlBlobs(HtmlBlobType.NhlRoster, rosterItems, forceOverwrite);
        }
Ejemplo n.º 3
0
        private static Nhl_Games_Rtss MapHtmlRowToModel(HtmlNode row, NhlSeasonType nhlSeasonType)
        {
            HtmlNodeCollection tdNodes = row.SelectNodes(@"./td");

            Nhl_Games_Rtss model = new Nhl_Games_Rtss();

            model.NhlSeasonType = nhlSeasonType;
            model.Date          = Convert.ToDateTime(tdNodes[0].InnerText.Replace("'", "/"));
            model.Year          = NhlModelHelper.GetSeason(model.Date).Item2;

            model.GameNumber = Convert.ToInt32(tdNodes[1].InnerText);
            model.Visitor    = tdNodes[2].InnerText;
            model.Home       = tdNodes[3].InnerText;

            model.RosterLink     = NhlGamesRtss.ParseLinkFromTd(tdNodes[4]);
            model.GameLink       = NhlGamesRtss.ParseLinkFromTd(tdNodes[5]);
            model.EventsLink     = NhlGamesRtss.ParseLinkFromTd(tdNodes[6]);
            model.FaceOffsLink   = NhlGamesRtss.ParseLinkFromTd(tdNodes[7]);
            model.PlayByPlayLink = NhlGamesRtss.ParseLinkFromTd(tdNodes[8]);
            model.ShotsLink      = NhlGamesRtss.ParseLinkFromTd(tdNodes[9]);
            model.HomeToiLink    = NhlGamesRtss.ParseLinkFromTd(tdNodes[10]);
            model.VistorToiLink  = NhlGamesRtss.ParseLinkFromTd(tdNodes[11]);
            model.ShootoutLink   = NhlGamesRtss.ParseLinkFromTd(tdNodes[12]);

            return(model);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets a list of all the results in a stat category on fromDate and later
        /// </summary>
        /// <remarks>
        /// This method assumes that rows are sorted in descending order by date (newest to oldest).
        ///
        /// year defaults to the current year
        /// fromDate defaults to DateTime.MinValue
        ///
        /// </remarks>
        protected virtual List <HtmlNode> GetResultsForSeasonType([Optional] int year, NhlSeasonType nhlSeasonType, [Optional] DateTime fromDate)
        {
            year = NhlModelHelper.SetDefaultYear(year);

            List <HtmlNode> results = new List <HtmlNode>();

            HtmlNode firstPageTableNode = this.ParseHtmlTableFromPage(year, nhlSeasonType, 1);

            int numberOfResults = NhlBaseClass.GetResultsCount(firstPageTableNode);

            if (numberOfResults <= 0)
            {
                return(results);
            }

            int numberOfPages = NhlBaseClass.GetPageCount(firstPageTableNode);

            // Handle the first page. Go through each row and add it to the list of results. When we encounter a result with a date earlier than fromDate then we stop.
            List <HtmlNode> firstPageRows = NhlBaseClass.ParseRowsFromTable(firstPageTableNode);

            foreach (HtmlNode row in firstPageRows)
            {
                DateTime resultDate = this.ParseDateFromHtmlRow(row);
                if (resultDate < fromDate)
                {
                    return(results);
                }
                else
                {
                    results.Add(row);
                }
            }

            // Now similar code to handle the rest of the pages. Go through each row, add it to the list, stop when we hit a date prior to fromDate.
            for (int i = 2; i < numberOfPages + 1; i++)
            {
                HtmlNode tableNode = this.ParseHtmlTableFromPage(year, nhlSeasonType, i);

                List <HtmlNode> rows = NhlBaseClass.ParseRowsFromTable(tableNode);
                foreach (HtmlNode row in rows)
                {
                    DateTime resultDate = this.ParseDateFromHtmlRow(row);
                    if (resultDate < fromDate)
                    {
                        return(results);
                    }
                    else
                    {
                        results.Add(row);
                    }
                }
            }

            return(results);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Get the NhlHtmlReportSummaryModels for the specified year
        /// </summary>
        private static List <Nhl_Games_Rtss_Summary> GetHtmlSummaryReports([Optional] int year, [Optional] DateTime fromDate)
        {
            year = NhlModelHelper.SetDefaultYear(year);

            List <Nhl_Games_Rtss_Summary> existingModels = new List <Nhl_Games_Rtss_Summary>();

            using (SportsDataContext db = new SportsDataContext())
            {
                existingModels = (from m in db.Nhl_Games_Rtss_Summary_DbSet
                                  where
                                  m.NhlRtssReportModel.Year == year &&
                                  m.NhlRtssReportModel.Date >= fromDate
                                  select m).ToList();
            }

            return(existingModels);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Get the RtssReports for the specified year
        /// </summary>
        public static List <Nhl_Games_Rtss> GetRtssReports([Optional] int year, [Optional] DateTime fromDate)
        {
            year = NhlModelHelper.SetDefaultYear(year);

            List <Nhl_Games_Rtss> models;

            using (SportsDataContext db = new SportsDataContext())
            {
                models = (from m in db.Nhl_Games_Rtss_DbSet
                          where
                          m.Year == year &&
                          m.Date >= fromDate
                          select m).ToList();
            }

            return(models);
        }