Exemplo n.º 1
0
 public static void AddFullMatchDetailsToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID,
                                            int awayTeamID, int competitionID = 10)
 {
     Helper.AddMatchDetailsToDb(match, db, homeTeamID, awayTeamID, competitionID);
     Helper.AddGoalsDetailsToDb(match, db, homeTeamID, awayTeamID);
     addOnlyStatisticsToDb(match, db, homeTeamID, awayTeamID);
 }
Exemplo n.º 2
0
        public static void addOnlyStatisticsToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID,
                                                 int awayTeamID)
        {
            Helper.AddEventToDb((int)DataObjects.EventType.Possession, homeTeamID, match.MatchID, match.HomeTeam.Possession, db);
            Helper.AddEventToDb((int)DataObjects.EventType.Corner, homeTeamID, match.MatchID, match.HomeTeam.Corners, db);
            Helper.AddEventToDb((int)DataObjects.EventType.Fouls, homeTeamID, match.MatchID, match.HomeTeam.Fouls, db);
            Helper.AddEventToDb((int)DataObjects.EventType.TotalShots, homeTeamID, match.MatchID, match.HomeTeam.TotalShots, db);
            Helper.AddEventToDb((int)DataObjects.EventType.ShotsOnTarget, homeTeamID, match.MatchID, match.HomeTeam.OnTarget, db);

            Helper.AddEventToDb((int)DataObjects.EventType.Possession, awayTeamID, match.MatchID, match.AwayTeam.Possession, db);
            Helper.AddEventToDb((int)DataObjects.EventType.Corner, awayTeamID, match.MatchID, match.AwayTeam.Corners, db);
            Helper.AddEventToDb((int)DataObjects.EventType.Fouls, awayTeamID, match.MatchID, match.AwayTeam.Fouls, db);
            Helper.AddEventToDb((int)DataObjects.EventType.TotalShots, awayTeamID, match.MatchID, match.AwayTeam.TotalShots, db);
            Helper.AddEventToDb((int)DataObjects.EventType.ShotsOnTarget, awayTeamID, match.MatchID, match.AwayTeam.OnTarget, db);
        }
Exemplo n.º 3
0
        public static void AddMatchDetailsToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID, int awayTeamID, int competitionID = 10)
        {
            var newMatch = new competitionmatch();

            newMatch.HomeTeamID   = homeTeamID;
            newMatch.AwayTeamID   = awayTeamID;
            newMatch.HomeGoals    = match.HomeTeam.Goals;
            newMatch.AwayGoals    = match.AwayTeam.Goals;
            newMatch.WinnerTeamID = Helper.GetWinnerTeamID(homeTeamID, match.HomeTeam.Goals, awayTeamID,
                                                           match.AwayTeam.Goals);
            newMatch.MatchDate     = match.Date;
            newMatch.CompetitionID = competitionID;

            db.competitionmatch.Add(newMatch);
            db.SaveChanges();
            match.MatchID = newMatch.CompetitionMatchID;
        }
        public static DataObjects.MatchDetails GetMatchStatisticsFromLivescore(string url)
        {
            var awayDetails  = new DataObjects.TeamDetails();
            var homeDetails  = new DataObjects.TeamDetails();
            var matchDetails = new DataObjects.MatchDetails();
            var dom          = CQ.CreateFromUrl(url);

            string homeTeam = dom["[data-type=home-team]"].Text();
            string awayTeam = dom["[data-type=away-team]"].Text();

            int homeGoals = int.Parse(dom[".sco [data-type=home]"].Text());
            int awayGoals = int.Parse(dom[".sco [data-type=away]"].Text());



            return(matchDetails);
        }
        public static void AddFullMatchDetailsToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID,
                                                   int awayTeamID)
        {
            AddMatchDetailsToDb(match, db, homeTeamID, awayTeamID);

            AddEventToDb((int)DataObjects.EventType.Blocks, homeTeamID, match.MatchID, match.HomeTeam.Blocks, db);
            AddEventToDb((int)DataObjects.EventType.Clearances, homeTeamID, match.MatchID, match.HomeTeam.Clearances, db);
            AddEventToDb((int)DataObjects.EventType.Corner, homeTeamID, match.MatchID, match.HomeTeam.Corners, db);
            AddEventToDb((int)DataObjects.EventType.Crosses, homeTeamID, match.MatchID, match.HomeTeam.Crossses, db);
            AddEventToDb((int)DataObjects.EventType.Fouls, homeTeamID, match.MatchID, match.HomeTeam.Fouls, db);
            AddEventToDb((int)DataObjects.EventType.FreeKick, homeTeamID, match.MatchID, match.HomeTeam.FreeKicks, db);
            AddEventToDb((int)DataObjects.EventType.Handballs, homeTeamID, match.MatchID, match.HomeTeam.Handballs, db);
            AddEventToDb((int)DataObjects.EventType.Offside, homeTeamID, match.MatchID, match.HomeTeam.Offsides, db);
            AddEventToDb((int)DataObjects.EventType.Penalties, homeTeamID, match.MatchID, match.HomeTeam.Penalties, db);
            AddEventToDb((int)DataObjects.EventType.Possession, homeTeamID, match.MatchID, match.HomeTeam.Possession, db);
            AddEventToDb((int)DataObjects.EventType.YellowCard, homeTeamID, match.MatchID, match.HomeTeam.YellowCards, db);
            AddEventToDb((int)DataObjects.EventType.RedCard, homeTeamID, match.MatchID, match.HomeTeam.RedCards, db);
            AddEventToDb((int)DataObjects.EventType.Saves, homeTeamID, match.MatchID, match.HomeTeam.Saves, db);
            AddEventToDb((int)DataObjects.EventType.ShotsOffTarget, homeTeamID, match.MatchID, match.HomeTeam.OffTarget, db);
            AddEventToDb((int)DataObjects.EventType.ShotsOnTarget, homeTeamID, match.MatchID, match.HomeTeam.OnTarget, db);
            AddEventToDb((int)DataObjects.EventType.Handballs, homeTeamID, match.MatchID, match.HomeTeam.Handballs, db);
            AddEventToDb((int)DataObjects.EventType.ThrowIns, homeTeamID, match.MatchID, match.HomeTeam.ThrowIns, db);
            AddEventToDb((int)DataObjects.EventType.TotalShots, homeTeamID, match.MatchID, match.HomeTeam.TotalShots, db);

            AddEventToDb((int)DataObjects.EventType.Blocks, awayTeamID, match.MatchID, match.AwayTeam.Blocks, db);
            AddEventToDb((int)DataObjects.EventType.Clearances, awayTeamID, match.MatchID, match.AwayTeam.Clearances, db);
            AddEventToDb((int)DataObjects.EventType.Corner, awayTeamID, match.MatchID, match.AwayTeam.Corners, db);
            AddEventToDb((int)DataObjects.EventType.Crosses, awayTeamID, match.MatchID, match.AwayTeam.Crossses, db);
            AddEventToDb((int)DataObjects.EventType.Fouls, awayTeamID, match.MatchID, match.AwayTeam.Fouls, db);
            AddEventToDb((int)DataObjects.EventType.FreeKick, awayTeamID, match.MatchID, match.AwayTeam.FreeKicks, db);
            AddEventToDb((int)DataObjects.EventType.Handballs, awayTeamID, match.MatchID, match.AwayTeam.Handballs, db);
            AddEventToDb((int)DataObjects.EventType.Offside, awayTeamID, match.MatchID, match.AwayTeam.Offsides, db);
            AddEventToDb((int)DataObjects.EventType.Penalties, awayTeamID, match.MatchID, match.AwayTeam.Penalties, db);
            AddEventToDb((int)DataObjects.EventType.Possession, awayTeamID, match.MatchID, match.AwayTeam.Possession, db);
            AddEventToDb((int)DataObjects.EventType.RedCard, awayTeamID, match.MatchID, match.AwayTeam.RedCards, db);
            AddEventToDb((int)DataObjects.EventType.YellowCard, awayTeamID, match.MatchID, match.AwayTeam.YellowCards, db);
            AddEventToDb((int)DataObjects.EventType.Saves, awayTeamID, match.MatchID, match.AwayTeam.Saves, db);
            AddEventToDb((int)DataObjects.EventType.ShotsOffTarget, awayTeamID, match.MatchID, match.AwayTeam.OffTarget, db);
            AddEventToDb((int)DataObjects.EventType.ShotsOnTarget, awayTeamID, match.MatchID, match.AwayTeam.OnTarget, db);
            AddEventToDb((int)DataObjects.EventType.Handballs, awayTeamID, match.MatchID, match.AwayTeam.Handballs, db);
            AddEventToDb((int)DataObjects.EventType.ThrowIns, awayTeamID, match.MatchID, match.AwayTeam.ThrowIns, db);
            AddEventToDb((int)DataObjects.EventType.TotalShots, awayTeamID, match.MatchID, match.AwayTeam.TotalShots, db);

            AddGoalsDetailsToDb(match, db, homeTeamID, awayTeamID);
        }
Exemplo n.º 6
0
        public static void AddGoalsDetailsToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID, int awayTeamID)
        {
            var ownGoalID = 553;

            foreach (var goal in match.HomeTeam.GoalsDetails)
            {
                var newGoal = new matchgoal();
                newGoal.MatchID       = match.MatchID;
                newGoal.ScoringMinute = goal.Minute;
                newGoal.TeamID        = homeTeamID;
                var scorer = NormalizePlayerName(goal.Scorer);
                if (goal.IsOwnGoal)
                {
                    newGoal.ScorerID = ownGoalID;
                }
                else
                {
                    newGoal.ScorerID = GetPlayerId(scorer, homeTeamID, db);
                }

                db.matchgoal.Add(newGoal);
            }

            foreach (var goal in match.AwayTeam.GoalsDetails)
            {
                var newGoal = new matchgoal();
                newGoal.MatchID       = match.MatchID;
                newGoal.ScoringMinute = goal.Minute;
                newGoal.TeamID        = awayTeamID;
                var scorer = NormalizePlayerName(goal.Scorer);
                if (goal.IsOwnGoal)
                {
                    newGoal.ScorerID = ownGoalID;
                }
                else
                {
                    newGoal.ScorerID = GetPlayerId(scorer, awayTeamID, db);
                }

                db.matchgoal.Add(newGoal);
            }

            db.SaveChanges();
        }
Exemplo n.º 7
0
        public static void AddAllMatchDeatilsToDb(DataObjects.MatchDetails match, sakilaEntities4 db)
        {
            var homeTeamID         = db.team.First(x => x.TeamName == match.HomeTeam.Name).TeamID;
            var awayTeamID         = db.team.First(x => x.TeamName == match.AwayTeam.Name).TeamID;
            var matchAlreadyExists =
                db.competitionmatch.FirstOrDefault(
                    x => x.HomeTeamID == homeTeamID && x.AwayTeamID == awayTeamID);

            if (matchAlreadyExists != null)
            {
                return;
            }

            AddMatchDetailsToDb(match, db, homeTeamID, awayTeamID);
            AddGoalsDetailsToDb(match, db, homeTeamID, awayTeamID);
            AddShotsDetailsToDb(match, db, homeTeamID, awayTeamID);
            AddCornersDetailsToDb(match, db, homeTeamID, awayTeamID);
            AddOffsidesDetailsToDb(match, db, homeTeamID, awayTeamID);
            AddPossessionDetailsToDb(match, db, homeTeamID, awayTeamID);
        }
Exemplo n.º 8
0
        public static void AddOffsidesDetailsToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID, int awayTeamID)
        {
            //2
            var homeEv = new matchevent();

            homeEv.EventTypeID = 2;
            homeEv.TeamID      = homeTeamID;
            homeEv.eventvalue  = match.HomeTeam.Offsides;
            homeEv.MatchID     = match.MatchID;

            var awayEv = new matchevent();

            awayEv.EventTypeID = 2;
            awayEv.TeamID      = awayTeamID;
            awayEv.eventvalue  = match.AwayTeam.Offsides;
            awayEv.MatchID     = match.MatchID;

            db.matchevent.Add(homeEv);
            db.matchevent.Add(awayEv);
            db.SaveChanges();
        }
Exemplo n.º 9
0
        public static void AddShotsDetailsToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID, int awayTeamID)
        {
            var homeEv = new matchevent();

            homeEv.EventTypeID = 5;
            homeEv.TeamID      = homeTeamID;
            homeEv.eventvalue  = match.HomeTeam.OnTarget;
            homeEv.MatchID     = match.MatchID;

            var awayEv = new matchevent();

            awayEv.EventTypeID = 5;
            awayEv.TeamID      = awayTeamID;
            awayEv.eventvalue  = match.AwayTeam.OnTarget;
            awayEv.MatchID     = match.MatchID;

            var homeEv2 = new matchevent();

            homeEv2.EventTypeID = 6;
            homeEv2.TeamID      = homeTeamID;
            homeEv2.eventvalue  = match.HomeTeam.OffTarget;
            homeEv2.MatchID     = match.MatchID;

            var awayEv2 = new matchevent();

            awayEv2.EventTypeID = 6;
            awayEv2.TeamID      = awayTeamID;
            awayEv2.eventvalue  = match.AwayTeam.OffTarget;
            awayEv2.MatchID     = match.MatchID;

            db.matchevent.Add(homeEv);
            db.matchevent.Add(homeEv2);
            db.matchevent.Add(homeEv);
            db.matchevent.Add(awayEv2);
            db.SaveChanges();
        }
        public static DataObjects.MatchDetails GetMatchStatistics(string url)
        {
            var awayDetails  = new DataObjects.TeamDetails();
            var homeDetails  = new DataObjects.TeamDetails();
            var matchDetails = new DataObjects.MatchDetails();

            var dom          = CQ.CreateFromUrl(url);
            var homeTeamName = dom[".club.home"].Text();
            var awayTeamName = dom[".club.away"].Text();
            var date         = dom[".fixtureinfo"].Text().Split('|').First().Trim();

            matchDetails.Date = DateTime.Parse(date);
            homeDetails.Name  = homeTeamName;
            awayDetails.Name  = awayTeamName;

            var allRelevantSections = dom[".statsTable .contentTable tr"].ToList();

            for (int i = 0; i < allRelevantSections.Count; i = i + 3)
            {
                var parameters     = allRelevantSections[i].ChildElements.Select(x => x.Cq().Text()).Skip(1).ToList();
                var homeParameters = allRelevantSections[i + 1].ChildElements.Select(x => x.Cq().Text()).Skip(1).ToList();
                var awayParameters = allRelevantSections[i + 2].ChildElements.Select(x => x.Cq().Text()).Skip(1).ToList();
                for (int j = 0; j < parameters.Count; j++)
                {
                    var parameter = parameters[j];
                    var homeValue = int.Parse(homeParameters[j]);
                    var awayValue = int.Parse(awayParameters[j]);
                    FillTheRightField(parameter, homeValue, homeDetails);
                    FillTheRightField(parameter, awayValue, awayDetails);
                }
            }

            var homeGoals = dom[".homeScore"].Text();
            var awayGoals = dom[".awayScore"].Text();

            homeDetails.Goals = int.Parse(homeGoals);
            awayDetails.Goals = int.Parse(awayGoals);

            var homeGoalsDetails = dom[".home.goals li"].Select(x => x.Cq().Text());
            var awayGoalsDetails = dom[".away.goals li"].Select(x => x.Cq().Text());

            homeDetails.GoalsDetails = new List <DataObjects.Goal>();
            awayDetails.GoalsDetails = new List <DataObjects.Goal>();

            foreach (var homeGoalsDetail in homeGoalsDetails)
            {
                var goalsToAdd = GetGoalsFromString(homeGoalsDetail);
                homeDetails.GoalsDetails.AddRange(goalsToAdd);
            }

            foreach (var awayGoalsDetail in awayGoalsDetails)
            {
                var goalsToAdd = GetGoalsFromString(awayGoalsDetail);
                awayDetails.GoalsDetails.AddRange(goalsToAdd);
            }

            matchDetails.AwayTeam = awayDetails;
            matchDetails.HomeTeam = homeDetails;

            return(matchDetails);
        }
Exemplo n.º 11
0
 public static void addOnlyPossessionToDb(DataObjects.MatchDetails match, sakilaEntities4 db, int homeTeamID,
                                          int awayTeamID)
 {
     Helper.AddEventToDb((int)DataObjects.EventType.Possession, homeTeamID, match.MatchID, match.HomeTeam.Possession, db);
     Helper.AddEventToDb((int)DataObjects.EventType.Possession, awayTeamID, match.MatchID, match.AwayTeam.Possession, db);
 }
Exemplo n.º 12
0
        public static DataObjects.MatchDetails GetMatchStatistics(string url)
        {
            var awayDetails  = new DataObjects.TeamDetails();
            var homeDetails  = new DataObjects.TeamDetails();
            var matchDetails = new DataObjects.MatchDetails();

            var dom  = CQ.CreateFromUrl(url);
            var date = dom[".fixture__date"].Text().Replace("Sept", "sep");

            matchDetails.Date = DateTime.ParseExact(date, "ddd dd MMM yyyy", new CultureInfo("us"));

            var matchHeaderQuery = ".match-overview-header";
            var teamNames        = matchHeaderQuery + " " + ".fixture__team-name--HorA";

            homeDetails.Name = dom[teamNames.Replace("HorA", "home")].Text();
            awayDetails.Name = dom[teamNames.Replace("HorA", "away")].Text();

            var score = matchHeaderQuery + " " + ".fixture__number--HorA";

            homeDetails.Goals = int.Parse(dom[score.Replace("HorA", "home")].Text());
            awayDetails.Goals = int.Parse(dom[score.Replace("HorA", "away")].Text());

            var scorersQuery = matchHeaderQuery + " " + ".fixture__scorers-HorA";
            var homeScorers  = dom[scorersQuery.Replace("HorA", "home")]
                               .Select(x => x.Cq().Text())
                               .Where(x => !string.IsNullOrEmpty(x))
                               .SelectMany(x => x.Split('Â').ToList())
                               .Where(x => !x.Contains("Dismissed"))
                               .Select(Helper.RemoveDiacritics)
                               .Select(Helper.NormalizePlayerName)
                               .ToList();
            var homeGoals   = GetGoalsForTeam(homeScorers);
            var awayScorers = dom[scorersQuery.Replace("HorA", "away")]
                              .Select(x => x.Cq().Text())
                              .Where(x => !string.IsNullOrEmpty(x))
                              .SelectMany(x => x.Split('Â').ToList())
                              .Where(x => !x.Contains("Dismissed"))
                              .Select(Helper.RemoveDiacritics)
                              .Select(Helper.NormalizePlayerName)
                              .ToList();
            var awayGoals = GetGoalsForTeam(awayScorers);

            homeDetails.GoalsDetails = homeGoals;
            awayDetails.GoalsDetails = awayGoals;

            var percentageRowQuery = ".percentage-row";
            var relevantDetails    = dom[percentageRowQuery].ToList();

            try
            {
                var possesion          = relevantDetails.First(x => x.Cq().Text().Contains("Possession"));
                var possessionElements = possesion.ChildElements.ToList();
                homeDetails.Possession = int.Parse(possessionElements[1].Cq().Text().Replace("Home", "").Trim().Trim('%'));
                awayDetails.Possession = int.Parse(possessionElements.Last().Cq().Text().Replace("Away", "").Trim().Trim('%'));

                var totalShots         = relevantDetails.First(x => x.Cq().Text().Contains("Shots"));
                var totalShotsElements = totalShots.ChildElements.ToList();
                homeDetails.TotalShots = int.Parse(totalShotsElements[1].Cq().Text().Replace("Home", ""));
                awayDetails.TotalShots = int.Parse(totalShotsElements.Last().Cq().Text().Replace("Away", ""));


                var shotsOnTarget         = relevantDetails.First(x => x.Cq().Text().Contains("Shots on Target"));
                var shotsOnTargetElements = shotsOnTarget.ChildElements.ToList();
                homeDetails.OnTarget = int.Parse(shotsOnTargetElements[1].Cq().Text().Replace("Home", ""));
                awayDetails.OnTarget = int.Parse(shotsOnTargetElements.Last().Cq().Text().Replace("Away", ""));

                var corners          = relevantDetails.First(x => x.Cq().Text().Contains("Corners"));
                var cornernsElements = corners.ChildElements.ToList();
                homeDetails.Corners = int.Parse(cornernsElements[1].Cq().Text().Replace("Home", ""));
                awayDetails.Corners = int.Parse(cornernsElements.Last().Cq().Text().Replace("Away", ""));

                var fouls         = relevantDetails.First(x => x.Cq().Text().Contains("Fouls"));
                var foulsElements = fouls.ChildElements.ToList();
                homeDetails.Fouls = int.Parse(foulsElements[1].Cq().Text().Replace("Home", ""));
                awayDetails.Fouls = int.Parse(foulsElements.Last().Cq().Text().Replace("Away", ""));
            }
            catch (Exception)
            {
                Console.WriteLine("No Stats for this match!");
            }

            matchDetails.HomeTeam = homeDetails;
            matchDetails.AwayTeam = awayDetails;

            return(matchDetails);
        }
Exemplo n.º 13
0
        public static DataObjects.MatchDetails GetMatchStatisticsFromEspn(string url)
        {
            var awayDetails  = new DataObjects.TeamDetails();
            var homeDetails  = new DataObjects.TeamDetails();
            var matchDetails = new DataObjects.MatchDetails();

            var summaryPage    = url.Replace("matchstats", "match");
            var summaryPageDom = CQ.CreateFromUrl(summaryPage);
            var title          = summaryPageDom["title"].Text();
            var dateStr        = title.Split('-')[2].Trim();

            matchDetails.Date = DateTime.Parse(dateStr);

            if (matchDetails.Date > DateTime.Today)
            {
                return(null);
            }

            var dom = CQ.CreateFromUrl(url);

            homeDetails.Name = dom[".team.away .long-name"].Text();
            awayDetails.Name = dom[".team.home .long-name"].Text();

            homeDetails.Goals = int.Parse(dom[".score-container [data-home-away=home]"].Text());
            awayDetails.Goals = int.Parse(dom[".score-container [data-home-away=away]"].Text());

            var awayScorers = dom[".team.home [data-event-type=goal]"]
                              .Select(x => x.Cq().Text().Trim())
                              .SelectMany(x => x.Split(')').ToList())
                              .Where(x => !string.IsNullOrEmpty(x))
                              .Select(Helper.RemoveDiacritics)
                              .Select(Helper.NormalizePlayerName)
                              .ToList();

            var awayGoals   = GetGoalsForTeam(awayScorers);
            var homeScorers = dom[".team.away [data-event-type=goal]"]
                              .Select(x => x.Cq().Text().Trim())
                              .SelectMany(x => x.Split(')').ToList())
                              .Where(x => !string.IsNullOrEmpty(x))
                              .Select(Helper.RemoveDiacritics)
                              .Select(Helper.NormalizePlayerName)
                              .ToList();


            var homeGoals = GetGoalsForTeam(homeScorers);

            homeDetails.GoalsDetails = homeGoals;
            awayDetails.GoalsDetails = awayGoals;

            homeDetails.Possession = int.Parse(dom[".possession [data-home-away=home]"].First().Text().Replace("%", "").Trim());
            awayDetails.Possession = int.Parse(dom[".possession [data-home-away=away]"].First().Text().Replace("%", "").Trim());

            var homeShots = dom[".shots [data-home-away=home]"].First().Text();

            homeDetails.TotalShots = int.Parse(homeShots.Split('(').First());
            homeDetails.OnTarget   = int.Parse(homeShots.Split('(').Last().Replace(")", "").Trim());

            var awayShots = dom[".shots [data-home-away=away]"].First().Text();

            awayDetails.TotalShots = int.Parse(awayShots.Split('(').First());
            awayDetails.OnTarget   = int.Parse(awayShots.Split('(').Last().Replace(")", "").Trim());

            homeDetails.Fouls = int.Parse(dom["[data-stat=foulsCommitted]"].First().Text());
            awayDetails.Fouls = int.Parse(dom["[data-stat=foulsCommitted]"].Last().Text());

            homeDetails.YellowCards = int.Parse(dom["[data-stat=yellowCards]"].First().Text());
            awayDetails.YellowCards = int.Parse(dom["[data-stat=yellowCards]"].Last().Text());

            homeDetails.RedCards = int.Parse(dom["[data-stat=redCards]"].First().Text());
            awayDetails.RedCards = int.Parse(dom["[data-stat=redCards]"].Last().Text());

            homeDetails.Offsides = int.Parse(dom["[data-stat=offsides]"].First().Text());
            awayDetails.Offsides = int.Parse(dom["[data-stat=offsides]"].Last().Text());

            homeDetails.Corners = int.Parse(dom["[data-stat=wonCorners]"].First().Text());
            awayDetails.Corners = int.Parse(dom["[data-stat=wonCorners]"].Last().Text());

            matchDetails.HomeTeam = homeDetails;
            matchDetails.AwayTeam = awayDetails;

            return(matchDetails);
        }
Exemplo n.º 14
0
        public static DataObjects.MatchDetails GetMatchStatistics(string url)
        {
            var awayDetails  = new DataObjects.TeamDetails();
            var homeDetails  = new DataObjects.TeamDetails();
            var matchDetails = new DataObjects.MatchDetails();

            matchDetails.Date = DateTime.Today;

            var basicQuery     = "[data-bind=text: HorA.Event]";
            var attempsInitial = ".total-attempts--values-wrap ";

            var dom = CQ.CreateFromUrl(url.Replace("index.html", "statistics/index.html"));
            //ballPossession
            var homeTeamName     = dom[".team-home  .team-name"].Last().Text().Trim().Trim('\n').Trim('\r').Trim('\t').Trim().Trim();
            var homeGoals        = dom[basicQuery.Replace("HorA", "home").Replace("Event", "goalsScored")].Text();
            var homeoffsides     = dom[basicQuery.Replace("HorA", "home").Replace("Event", "offside")].Text();
            var homePossession   = dom[basicQuery.Replace("HorA", "home").Replace("Event", "ballPossession + '%'")].Text().Trim('%');
            var homeGoalsDetails = GetGoalsForTeamInMatch(dom, "home");

            Console.Write(homeTeamName + " ");

            var homeCorners   = dom[basicQuery.Replace("HorA", "home").Replace("Event", "corner")].Text();
            var homeOnTarget  = dom[attempsInitial + basicQuery.Replace("HorA", "home").Replace("Event", "attempsOn")].Text();
            var homeOffTarget = dom[attempsInitial + basicQuery.Replace("HorA", "home").Replace("Event", "attempsOff")].Text();

            homeDetails.Type         = (int)DataObjects.TeamType.Home;
            homeDetails.Name         = homeTeamName;
            homeDetails.Goals        = int.Parse(homeGoals);
            homeDetails.Offsides     = int.Parse(homeoffsides);
            homeDetails.Corners      = int.Parse(homeCorners);
            homeDetails.OnTarget     = int.Parse(homeOnTarget);
            homeDetails.OffTarget    = int.Parse(homeOffTarget);
            homeDetails.Possession   = int.Parse(homePossession);
            homeDetails.GoalsDetails = homeGoalsDetails;

            var awayTeamName =
                dom[".team-away  .team-name"].Last().Text().Trim().Trim('\n').Trim('\r').Trim('\t').Trim().Trim();
            var awayGoals        = dom[basicQuery.Replace("HorA", "away").Replace("Event", "goalsScored")].Text();
            var awayoffsides     = dom[basicQuery.Replace("HorA", "away").Replace("Event", "offside")].Text();
            var awayCorners      = dom[basicQuery.Replace("HorA", "away").Replace("Event", "corner")].Text();
            var awayOnTarget     = dom[attempsInitial + basicQuery.Replace("HorA", "away").Replace("Event", "attempsOn")].Text();
            var awayOffTarget    = dom[attempsInitial + basicQuery.Replace("HorA", "away").Replace("Event", "attempsOff")].Text();
            var awayPossession   = dom[basicQuery.Replace("HorA", "away").Replace("Event", "ballPossession + '%'")].Text().Trim('%');
            var awayGoalsDetails = GetGoalsForTeamInMatch(dom, "away");

            Console.Write(awayTeamName);
            Console.WriteLine();

            awayDetails.Type         = (int)DataObjects.TeamType.Away;
            awayDetails.Name         = awayTeamName;
            awayDetails.Goals        = int.Parse(awayGoals);
            awayDetails.Offsides     = int.Parse(awayoffsides);
            awayDetails.Corners      = int.Parse(awayCorners);
            awayDetails.OnTarget     = int.Parse(awayOnTarget);
            awayDetails.OffTarget    = int.Parse(awayOffTarget);
            awayDetails.OffTarget    = int.Parse(awayPossession);
            awayDetails.GoalsDetails = awayGoalsDetails;

            matchDetails.HomeTeam = homeDetails;
            matchDetails.AwayTeam = awayDetails;

            return(matchDetails);
        }