public List <GameModel> GetAllWaitingGames() { try { GameDAL gdal = new GameDAL(); UserDAL udal = new UserDAL(); CustomCrypto hashing = new CustomCrypto(); var games = gdal.GetAllWaitingGames(); List <GameModel> waiting_game = new List <GameModel>(); foreach (var game in games) { var new_game = new GameModel { //GameId = game.GameId, GameURL = hashing.Encrypt(game.GameId.ToString()), Status = game.Status, EndTime = game.EndTime, StartTime = game.StartTime }; User player; if (game.Player1 != null) { player = udal.GetUserById(game.Player1.Value); new_game.Player1 = new Player(player.UserId, player.Username); } if (game.Player2 != null) { player = udal.GetUserById(game.Player2.Value); new_game.Player2 = new Player(player.UserId, player.Username); } if (game.Player3 != null) { player = udal.GetUserById(game.Player3.Value); new_game.Player3 = new Player(player.UserId, player.Username); } if (game.Player4 != null) { player = udal.GetUserById(game.Player4.Value); new_game.Player4 = new Player(player.UserId, player.Username); } waiting_game.Add(new_game); } return(waiting_game); } catch (CustomException e) { throw new CustomException(e.Message); } catch (Exception e) { logger.Error(e); throw new Exception("Oops! Some error occured."); } }