Exemple #1
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);
        }
Exemple #2
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);
        }
Exemple #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);
        }
Exemple #4
0
        public void GetGameLineScore()
        {
            NHLApiClient api = new NHLApiClient();

            //Load Expected result from file
            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetGameLineScore.json");
            var jobj         = JObject.Parse(testResponse);
            var expected     = JsonConvert.DeserializeObject <LineScore>(jobj.ToString());

            LineScore actual = api.GetGameLineScore(2017030325); //Jets vs Vegas WCF Game 5 2018

            Assert.AreEqual(expected, actual);
        }
Exemple #5
0
        private void SendGameSummary(JObject gameObj)
        {
            List <string> result = new List <string>();

            var api = new NHLApiClient();

            var teamId       = _config.Team;
            var scheduleData = api.GetTodaysSchedule(teamId);
            var nextGame     = api.GetNextGame(teamId);
            var teamData     = api.GetTeam(teamId);

            _channel.SendMessageAsync(NHLInformationSummarizer.GameSummary(scheduleData, nextGame, teamData));
        }
Exemple #6
0
        private void SendLineScoreForPeriod(JObject gameObj)
        {
            List <string> result = new List <string>();

            var api = new NHLApiClient();

            var homeTeam  = api.GetTeam(int.Parse(gameObj["gameData"]["teams"]["home"]["id"].ToString()));
            var awayTeam  = api.GetTeam(int.Parse(gameObj["gameData"]["teams"]["away"]["id"].ToString()));
            var gameData  = api.GetLiveGameDetail(int.Parse(gameObj["gamePk"].ToString()));
            var lineScore = api.GetGameLineScore(int.Parse(gameObj["gamePk"].ToString()));

            _channel.SendMessageAsync(NHLInformationSummarizer.PeriodSummary(lineScore.Periods.Last(), homeTeam, awayTeam, gameData));
        }
Exemple #7
0
        private void SendLineScoreForPeriod(JObject gameObj)
        {
            List <string> result = new List <string>();

            var api = new NHLApiClient();

            var homeTeam  = api.GetTeam(int.Parse(gameObj["gameData"]["teams"]["home"]["id"].ToString()));
            var awayTeam  = api.GetTeam(int.Parse(gameObj["gameData"]["teams"]["away"]["id"].ToString()));
            var gameData  = api.GetLiveGameDetail(int.Parse(gameObj["gamePk"].ToString()));
            var lineScore = api.GetGameLineScore(int.Parse(gameObj["gamePk"].ToString()));

            Locator.Instance.Fetch <ILogger>().LogLine(String.Format("Goal Horn: Sending period line score for {0}", _config.TeamFriendlyName));
            _channel.SendMessageAsync(NHLInformationSummarizer.PeriodSummary(lineScore.Periods.Last(), homeTeam, awayTeam, gameData));
        }
Exemple #8
0
        public void GetTodaysScheduleTestTeam()
        {
            NHLApiClient api = new NHLApiClient();

            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetTodaysScheduleTeamResult.json");
            var jobj         = JObject.Parse(testResponse);
            var expected     = JsonConvert.DeserializeObject <ScheduleData>(jobj.ToString());

            // Make API web call
            ScheduleData actual = api.GetTodaysSchedule(54); //Jan 1 2019 in the mock data, Vegas

            //Assert
            Assert.AreEqual(expected, actual);
        }
        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);
        }
Exemple #10
0
        public void GetGameContentTestBasic()
        {
            NHLApiClient api = new NHLApiClient();

            // Load Expected result from file
            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetGameContentResult.json");
            var jobj         = JObject.Parse(testResponse);
            var expected     = JsonConvert.DeserializeObject <GameContent>(jobj.ToString());

            // Make API web call
            GameContent actual = api.GetGameContent(2017030325); //Jets vs Vegas WCF Game 5 2018

            //Assert
            Assert.AreEqual(expected, actual);
        }
Exemple #11
0
        public void GetScheduleTestDate()
        {
            NHLApiClient api = new NHLApiClient();

            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetScheduleDateResult.json");
            var jobj         = JObject.Parse(testResponse);
            var expected     = JsonConvert.DeserializeObject <ScheduleData>(jobj.ToString());

            // Make API web call
            var          date   = DateTime.Parse("2019-01-01");
            ScheduleData actual = api.GetSchedule(date);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Exemple #12
0
        public void GetTeamBasicTest()
        {
            NHLApiClient api = new NHLApiClient();
            // Load Expected result from file
            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetTeamResult.json");
            var jobj         = JObject.Parse(testResponse);
            var teamArray    = (JArray)jobj["teams"];
            var expected     = JsonConvert.DeserializeObject <TeamDetail>(teamArray[0].ToString());

            // Make API web call
            var actual = api.GetTeam(52); // Go Jets Go!

            //Assert
            Assert.AreEqual(expected, actual);
        }
        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);
        }
        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);
        }
Exemple #15
0
        public void GetRosterBasicTest()
        {
            NHLApiClient api          = new NHLApiClient();
            var          testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetCurrentRosterResult.json");
            var          jobj         = JObject.Parse(testResponse);
            var          playerArray  = (JArray)jobj["roster"];
            var          expected     = JsonConvert.DeserializeObject <List <Player> >(playerArray.ToString());

            var actual = api.GetCurrentRoster(52).ToList(); // Go Jets Go!

            Assert.AreEqual(expected.Count, actual.Count);
            for (int i = 0; i < actual.Count; i++)
            {
                Assert.AreEqual(expected[i], actual[i]);
            }
        }
Exemple #16
0
        public void GetPersonTestBasic()
        {
            NHLApiClient api = new NHLApiClient();

            // Load Expected result from file
            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetPersonResult.json");
            var jobj         = JObject.Parse(testResponse);
            var peopleArray  = (JArray)jobj["people"];
            var expected     = JsonConvert.DeserializeObject <PersonDetail>(peopleArray[0].ToString());

            // Make API web call
            var actual = api.GetPerson(8476460); // Mark Scheifele

            //Assert
            Assert.AreEqual(expected, actual);
        }
Exemple #17
0
        private IEnumerable <string> NextGame(int team)
        {
            List <string> result   = new List <string>();
            NHLApiClient  api      = new NHLApiClient();
            var           nextGame = api.GetNextGame(team);
            var           teamData = api.GetTeam(team);

            if (nextGame.TotalGames < 1)
            {
                result.Add(string.Format("There are currently no games scheduled for the {0}", teamData.Name));
                return(result);
            }

            result.Add(NHLInformationSummarizer.NextGameSummary(nextGame, teamData));
            return(result);
        }
Exemple #18
0
        public void GetScheduleTestTeamDateRange()
        {
            NHLApiClient api = new NHLApiClient();

            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetScheduleTeamDateRangeResult.json");
            var jobj         = JObject.Parse(testResponse);
            var expected     = JsonConvert.DeserializeObject <ScheduleData>(jobj.ToString());

            // Make API web call
            var          startDate = DateTime.Parse("2018-12-20");
            var          endDate   = DateTime.Parse("2018-12-30");
            ScheduleData actual    = api.GetSchedule(startDate, endDate, 52); // Winnipeg Jets

            //Assert
            Assert.AreEqual(expected, actual);
        }
Exemple #19
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);
        }
        private IEnumerable <string> Countdown(string team)
        {
            Locator.Instance.Fetch <ILogger>().LogLine("Executing Countdown 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 nextGame = api.GetNextGame(teamId);
            var teamData = api.GetTeam(teamId);

            var timeToGame = nextGame.Dates.First().Games.First().GameDate - DateTime.UtcNow;

            if (timeToGame.Ticks <= 0)
            {
                result.Add(string.Format("The {0} are currently playing!", teamData.Name));
                return(result);
            }

            var formatString = (timeToGame.Days > 0 ? @"d\.h" : "") + @"h\:mm\:ss";

            result.Add(string.Format("The next {0} game is in {1}.", teamData.Name, timeToGame.Duration().ToString(formatString)));
            return(result);
        }
Exemple #21
0
        public void GetTeamsBasicTest()
        {
            NHLApiClient api = new NHLApiClient();
            // Load Expected result from file
            var testResponse = File.ReadAllText(@"../../../TestAPIResponses/GetTeamsResult.json");
            var jobj         = JObject.Parse(testResponse);
            var expected     = JsonConvert.DeserializeObject <List <TeamDetail> >(jobj["teams"].ToString());

            // Make API web call
            List <TeamDetail> actual = api.GetTeams().ToList();

            //Assert
            Assert.AreEqual(expected.Count, actual.Count, "Expected is not equal to Actual length.");

            for (int i = 0; i < expected.Count; i++)
            {
                Assert.AreEqual(expected[i], actual[i]);
            }
        }
        private IEnumerable <string> NextGame(string team)
        {
            Locator.Instance.Fetch <ILogger>().LogLine("Executing NextGame 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 nextGame = api.GetNextGame(teamId);
            var teamData = api.GetTeam(teamId);

            if (nextGame.TotalGames < 1)
            {
                result.Add(string.Format("There are currently no games scheduled for the {0}", teamData.Name));
                return(result);
            }

            result.Add(NHLInformationSummarizer.NextGameSummary(nextGame, teamData));
            return(result);
        }