public static Game GetGame(string czGameId, Guid eventId, Guid drawId) { string gameJson = Request.GetGameJson(czGameId); Api.GameObject apiGame = Api.GetGameObject(gameJson); Team team1 = GetTeam(apiGame, true); Team team2 = GetTeam(apiGame, false); Linescore linescore = GetLinescore(apiGame); bool isFinal = GetIsFinal(apiGame.gameStatus); long drawStartTimeInUnixTimeStamp = long.Parse(apiGame.draw.startsAt); DateTime drawStart = DateTimeOffset.FromUnixTimeSeconds(drawStartTimeInUnixTimeStamp).UtcDateTime; bool isOverAndFullyParsed = false; if (DateTime.Now.AddHours(-6) > drawStart && isFinal) { isOverAndFullyParsed = true; } Game game = new Game(team1, team2, linescore, isFinal, eventId, isOverAndFullyParsed, drawId); Program.Logger.Log("Getting Game", game); return(game); }
private static Linescore GetLinescore(Api.GameObject apiGame) { int numberOfEnds = 10; int.TryParse(apiGame.numberOfEnds, out numberOfEnds); int lastPlayedEnd = 10; int.TryParse(apiGame.lastPlayedEnd, out lastPlayedEnd); Linescore linescore = new Linescore(numberOfEnds); bool team1Hammer = apiGame.homeHammer; for (var endNumber = 1; endNumber <= numberOfEnds + 1 && (endNumber - 1) < apiGame.homeScores.Count; endNumber++) { int team1Score = Utility.ParseIntWithDefault(apiGame.homeScores[endNumber - 1], 0); int team2Score = Utility.ParseIntWithDefault(apiGame.awayScores[endNumber - 1], 0); if (team1Score > 0 && team2Score > 0) { Program.Logger.Log("Found end where both teams score. Arbitrarily setting team 2's score to 0."); team2Score = 0; } var end = new End( team1Score, team2Score, team1Hammer, endNumber, (endNumber <= lastPlayedEnd) ); linescore.AddEnd(end); if (team1Score > 0) { team1Hammer = false; } else if (team2Score > 0) { team1Hammer = true; } } return(linescore); }
public static Team GetTeam(Api.GameObject apiGame, bool isHomeTeam) { EventType.TeamType teamType = GetTeamTypeFromDivision([email protected]); string html = ""; string teamDisplayName = ""; if (isHomeTeam) { html = Request.GetHtml(apiGame.homeTeamUrl); teamDisplayName = apiGame.homeTeamDisplayName; } else { html = Request.GetHtml(apiGame.awayTeamUrl); teamDisplayName = apiGame.awayTeamDisplayName; } List <Player> players = GetPlayers(html, teamType); Team team = new Team(teamType, players, teamDisplayName); return(team); }