private static void LoadSavedGameOrCreateNewGame(LudoGameContext context, ref bool loadSavedGame, RunGUI gUI, GameInitializer game, ref string loadGameAnswer, ref bool validChoice) { while (validChoice == false) { loadGameAnswer = Menu.DisplayMessageReturnUserInput("y. = Load saved game\n" + "n. = Create new game"); switch (loadGameAnswer) { case "y": var gameNames = context.Users .Select(x => x.GameName) .Distinct().ToList(); foreach (var gameName in gameNames) { Console.WriteLine($"Saved Game: { gameName }"); } var userGameToLoad = Console.ReadLine(); game.Users = context.Users.Where(u => u.GameName == userGameToLoad).ToList(); foreach (var user in game.Users) { user.Pawns = context.Pawns.Where(p => p.UserID == user.UserID).ToList(); } loadSavedGame = true; validChoice = true; break; case "n": var numberOfPlayers = gUI.NumberOfPlayers(); var nameOfGame = Menu.DisplayMessageReturnUserInput("Name your game: "); for (int i = 1; i <= numberOfPlayers; i++) { string name = gUI.GetAndReturnName(); gUI.ShowPawnColorMenu(); var colorOnPawn = game.TranslateChoiceToColor(Console.ReadLine()); var pawns = game.CreateListOfPawns(colorOnPawn); game.AddUserToPlayerList(new User(name, i, pawns, nameOfGame)); } validChoice = true; break; default: Console.WriteLine("No valid input"); Console.ReadKey(); Console.Clear(); break; } } }