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); }
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 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)); }
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)); }
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); }
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)); }
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> 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); }
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); }
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); }