public List <GameWithIndex> GetGamesByRound(int roundIndex) { if (dataFile.Games == null) { return(null); } else { var results = new List <GameWithIndex>(); var round = dataFile.Games[roundIndex]; for (var gameIndex = 0; gameIndex < round.Count; gameIndex++) { var game = round[gameIndex]; var gameWithIndex = new GameWithIndex { GameResult = game.GameResult, GameTime = game.GameTime, IsTimeIncluded = game.IsTimeIncluded, MapId = game.MapId, RaceIds = game.RaceIds, PlayerIds = game.PlayerIds, RoundIndex = roundIndex, GameIndex = gameIndex, Description = game.Description }; results.Add(gameWithIndex); } return(results); } }
public GameWithIndex GetLatestFinishedGame() { var all = GetFinishedGames(); if (all == null) { return(null); } else if (all.Count == 1) { return(all[0]); } var latestTime = DateTime.MinValue; var latestRound = -1; var latestGame = -1; GameWithIndex match = null; foreach (var game in all) { if (game.GameTime > latestTime) { latestTime = game.GameTime; latestRound = game.RoundIndex; latestGame = game.GameIndex; match = game; } else if (game.GameTime == latestTime) { if (game.RoundIndex > latestRound) { latestRound = game.RoundIndex; latestGame = game.GameIndex; match = game; } else if (game.RoundIndex == latestRound) { if (game.RoundIndex > latestGame) { latestGame = game.GameIndex; match = game; } } } } return(match); }
public List <GameWithIndex> GetGamesByResults(params GameResult[] gameResults) { if (dataFile.Games == null) { return(null); } else { var results = new List <GameWithIndex>(); for (var roundIndex = 0; roundIndex < dataFile.Games.Count; roundIndex++) { var round = dataFile.Games[roundIndex]; for (var gameIndex = 0; gameIndex < round.Count; gameIndex++) { var game = round[gameIndex]; if (gameResults.Contains(game.GameResult)) { var gameWithIndex = new GameWithIndex { GameResult = game.GameResult, GameTime = game.GameTime, IsTimeIncluded = game.IsTimeIncluded, MapId = game.MapId, RaceIds = game.RaceIds, PlayerIds = game.PlayerIds, RoundIndex = roundIndex, GameIndex = gameIndex }; results.Add(gameWithIndex); } } } return(results); } }
public List <GameWithIndex> GetGamesByPlayer(TeamSelection teamSelection, Guid playerId) { if (dataFile.Games == null) { return(null); } else { var results = new List <GameWithIndex>(); for (var roundIndex = 0; roundIndex < dataFile.Games.Count; roundIndex++) { var round = dataFile.Games[roundIndex]; for (var gameIndex = 0; gameIndex < round.Count; gameIndex++) { var game = round[gameIndex]; if (game.PlayerIds[teamSelection] == playerId) { var gameWithIndex = new GameWithIndex { GameResult = game.GameResult, GameTime = game.GameTime, IsTimeIncluded = game.IsTimeIncluded, MapId = game.MapId, RaceIds = game.RaceIds, PlayerIds = game.PlayerIds, RoundIndex = roundIndex, GameIndex = gameIndex }; results.Add(gameWithIndex); } } } return(results); } }
public void GetGameForDisplaying(out GameWithIndex latestFinishedGame, out List <GameWithIndex> playingGames, out List <GameWithIndex> nextGames) { latestFinishedGame = GetLatestFinishedGame(); playingGames = GetGamesByResults(GameResult.InGame); nextGames = GetGamesByResults(GameResult.Starting); }