예제 #1
0
        private IEnumerable <string> LastGameHighlights(int team)
        {
            List <string> result   = new List <string>();
            NHLApiClient  api      = new NHLApiClient();
            var           lastGame = api.GetLastGame(team);
            var           gameId   = lastGame.Dates[0].Games[0].GamePk;

            var content = api.GetGameContent(gameId);

            foreach (var highlight in content.Highlights.Scoreboard.Items)
            {
                if (highlight.Type != "video")
                {
                    continue;
                }

                var builder = new StringBuilder();
                var vid     = highlight.Playbacks.Last();
                builder.AppendLine(highlight.Title);
                builder.AppendLine(vid.URL);

                result.Add(builder.ToString());
            }

            return(result);
        }
예제 #2
0
        private IEnumerable <string> LastGame(int team)
        {
            List <string> result = new List <string>();
            NHLApiClient  api    = new NHLApiClient();

            var lastGame = api.GetLastGame(team);
            var teamData = api.GetTeam(team);

            if (lastGame == null || lastGame.TotalGames < 1)
            {
                result.Add(string.Format("There are currently no previous games the {0}", teamData.Name));
                return(result);
            }

            var game     = lastGame.Dates[0].Games[0];
            var homeTeam = api.GetTeam(game.Teams.Home.Team.Id);
            var awayTeam = api.GetTeam(game.Teams.Away.Team.Id);

            StringBuilder builder = new StringBuilder();

            builder.AppendLine(string.Format("The last {0} game was {1}, {2} @ {3} at {4}", teamData.Name, game.GameDate.ToLocalTime().ToLongDateString(), game.Teams.Away.Team.Name, game.Teams.Home.Team.Name, game.Venue.Name));
            builder.AppendLine(string.Format("The final score was {0} {1} : {2} {3}", awayTeam.Abbreviation, game.Teams.Away.Score, homeTeam.Abbreviation, game.Teams.Home.Score));
            result.Add(builder.ToString());

            return(result);
        }
예제 #3
0
        private IEnumerable <string> LastGameLineScore(int teamId)
        {
            List <string> result = new List <string>();

            var api      = new NHLApiClient();
            var lastGame = api.GetLastGame(teamId);
            var teamData = api.GetTeam(teamId);

            if (lastGame == null || lastGame.TotalGames < 1)
            {
                result.Add(string.Format("There are currently no previous games the {0}", teamData.Name));
                return(result);
            }

            var homeTeam  = api.GetTeam(lastGame.Dates[0].Games[0].Teams.Home.Team.Id);
            var awayTeam  = api.GetTeam(lastGame.Dates[0].Games[0].Teams.Away.Team.Id);
            var gameData  = api.GetLiveGameDetail(lastGame.Dates[0].Games[0].GamePk);
            var lineScore = api.GetGameLineScore(lastGame.Dates[0].Games[0].GamePk);

            foreach (var period in lineScore.Periods)
            {
                var summary = NHLInformationSummarizer.PeriodSummary(period, homeTeam, awayTeam, gameData);
                result.Add(summary.ToString());
            }
            return(result);
        }
        private IEnumerable <string> LastGameHighlights(string team)
        {
            Locator.Instance.Fetch <ILogger>().LogLine("Executing LastGameHighlights command for team: " + team);
            List <string> result = new List <string>();
            NHLApiClient  api    = new NHLApiClient();
            int           teamId = -1;

            var isTeamId = int.TryParse(team, out teamId);

            if (!isTeamId)
            {
                var Ids = Locator.Instance.Fetch <TeamNameTranslator>().LookupIdsForName(team);
                if (Ids.Count > 1)
                {
                    result.Add("Name conflict, got more than one team ID for " + team + ". Please be more specific.");
                    return(result);
                }

                if (Ids.Count == 0)
                {
                    result.Add("Couldn't find a team by the name " + team + ". Please try another name.");
                    return(result);
                }

                teamId = Ids.First().Key;
            }

            var lastGame = api.GetLastGame(teamId);
            var gameId   = lastGame.Dates[0].Games[0].GamePk;

            var content = api.GetGameContent(gameId);

            foreach (var highlight in content.Highlights.Scoreboard.Items)
            {
                if (highlight.Type != "video")
                {
                    continue;
                }

                var builder = new StringBuilder();
                var vid     = highlight.Playbacks.Last();
                builder.AppendLine(highlight.Title);
                builder.AppendLine(vid.URL);

                result.Add(builder.ToString());
            }

            return(result);
        }
        private IEnumerable <string> LastGame(string team)
        {
            Locator.Instance.Fetch <ILogger>().LogLine("Executing LastGame command for team: " + team);
            List <string> result = new List <string>();
            NHLApiClient  api    = new NHLApiClient();
            int           teamId = -1;

            var isTeamId = int.TryParse(team, out teamId);

            if (!isTeamId)
            {
                var Ids = Locator.Instance.Fetch <TeamNameTranslator>().LookupIdsForName(team);
                if (Ids.Count > 1)
                {
                    result.Add("Name conflict, got more than one team ID for " + team + ". Please be more specific.");
                    return(result);
                }

                if (Ids.Count == 0)
                {
                    result.Add("Couldn't find a team by the name " + team + ". Please try another name.");
                    return(result);
                }

                teamId = Ids.First().Key;
            }

            var lastGame = api.GetLastGame(teamId);
            var teamData = api.GetTeam(teamId);

            if (lastGame == null || lastGame.TotalGames < 1)
            {
                result.Add(string.Format("There are currently no previous games the {0}", teamData.Name));
                return(result);
            }

            var game     = lastGame.Dates[0].Games[0];
            var homeTeam = api.GetTeam(game.Teams.Home.Team.Id);
            var awayTeam = api.GetTeam(game.Teams.Away.Team.Id);

            StringBuilder builder = new StringBuilder();

            builder.AppendLine(string.Format("The last {0} game was {1}, {2} @ {3} at {4}", teamData.Name, game.GameDate.ToLocalTime().ToLongDateString(), game.Teams.Away.Team.Name, game.Teams.Home.Team.Name, game.Venue.Name));
            builder.AppendLine(string.Format("The final score was {0} {1} : {2} {3}", awayTeam.Abbreviation, game.Teams.Away.Score, homeTeam.Abbreviation, game.Teams.Home.Score));
            result.Add(builder.ToString());

            return(result);
        }
        private IEnumerable <string> LastGameLineScore(string team)
        {
            Locator.Instance.Fetch <ILogger>().LogLine("Executing LastGameLineScore command for: " + team);
            List <string> result = new List <string>();
            int           teamId = -1;

            var isTeamId = int.TryParse(team, out teamId);

            if (!isTeamId)
            {
                var Ids = Locator.Instance.Fetch <TeamNameTranslator>().LookupIdsForName(team);
                if (Ids.Count > 1)
                {
                    result.Add("Name conflict, got more than one team ID for " + team + ". Please be more specific.");
                    return(result);
                }

                if (Ids.Count == 0)
                {
                    result.Add("Couldn't find a team by the name " + team + ". Please try another name.");
                    return(result);
                }

                teamId = Ids.First().Key;
            }

            var api      = new NHLApiClient();
            var lastGame = api.GetLastGame(teamId);
            var teamData = api.GetTeam(teamId);

            if (lastGame == null || lastGame.TotalGames < 1)
            {
                result.Add(string.Format("There are currently no previous games the {0}", teamData.Name));
                return(result);
            }

            var homeTeam  = api.GetTeam(lastGame.Dates[0].Games[0].Teams.Home.Team.Id);
            var awayTeam  = api.GetTeam(lastGame.Dates[0].Games[0].Teams.Away.Team.Id);
            var gameData  = api.GetLiveGameDetail(lastGame.Dates[0].Games[0].GamePk);
            var lineScore = api.GetGameLineScore(lastGame.Dates[0].Games[0].GamePk);

            foreach (var period in lineScore.Periods)
            {
                var summary = NHLInformationSummarizer.PeriodSummary(period, homeTeam, awayTeam, gameData);
                result.Add(summary.ToString());
            }
            return(result);
        }
예제 #7
0
        public void GetLastGameTestBasic()
        {
            NHLApiClient api = new NHLApiClient();

            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetLastGameResult.json");
            var jobj         = JObject.Parse(testResponse);
            var teamArray    = (JArray)jobj["teams"];
            var teamDetail   = JsonConvert.DeserializeObject <TeamDetail>(teamArray[0].ToString());
            var expected     = teamDetail.PreviousGameSchedule;

            // Make API web call
            GameScheduleData actual = api.GetLastGame(52); // Jets

            //Assert
            Assert.AreEqual(expected, actual);
        }