public CurrentGamesViewModel(int? playerId) : this() { if (playerId != null) { using (IGameDataService dataService = new GameDataService()) { IEnumerable<DB.Match> playingMatches = dataService.GetPlayingMatchesForPlayer(playerId.Value); foreach (var match in playingMatches) { DB.Player opponent = dataService.GetPlayer(match.PlayerOneId == playerId ? match.PlayerTwoId : match.PlayerOneId); DB.Game currentGame = dataService.GetGame(match.CurrentGameId.Value); DB.Player currentPlayer = null; if (currentGame.CurrentPlayerId != null) currentPlayer = dataService.GetPlayer(currentGame.CurrentPlayerId.Value); CurrentGamesViewModel.Game game = new Game(); game.MatchId = match.MatchId; game.OpponentName = opponent.PlayerName; game.PlayerTurn = currentPlayer != null ? currentPlayer.PlayerName : "none"; game.StartDateTime = match.CreateDate; this.Games.Add(game); } } } }