/// <summary> /// Displays and handles user inputs to create all the data needed /// for a castle. This method calls the OnCastleSaveEvent in order /// to save the user input data. /// </summary> public void CreateCastle() { int answer, price = 0; bool bCreating = true; string userInput, castleName; string tempRoomName, tempRoomDescription; List <string> features, histEvents; List <Tuple <string, string> > rooms; features = new List <string> (); histEvents = new List <string> (); rooms = new List <Tuple <string, string> > (); castleName = ConsoleUtil.UserInputNewCastleName(); price = ConsoleUtil.UserInputNewPrice(); while (bCreating) { ConsoleDisplay.DisplayCastleCreateMenu( castleName, price, features, histEvents, rooms); userInput = Console.ReadLine(); answer = ConsoleUtil.TryUserInputConvert(userInput); switch (answer) { case 1: // Edit Name Here castleName = ConsoleUtil.UserInputNewCastleName(); break; case 2: ConsoleDisplay.DisplayPriceOfCastle(); price = ConsoleUtil.UserInputNewPrice(); break; case 3: //Add Room + Description ConsoleDisplay.DisplayRoomAddition(); tempRoomName = Console.ReadLine(); ConsoleDisplay.DisplayRoomDescription(); tempRoomDescription = Console.ReadLine(); rooms.Add(new Tuple <string, string> (tempRoomName, tempRoomDescription)); break; case 4: //Add Feature ConsoleDisplay.DisplayFeatureAddition(); features.Add(Console.ReadLine()); break; case 5: //Add Historical Event ConsoleDisplay.DisplayHistoricalEventAddition(); histEvents.Add(Console.ReadLine()); break; case 6: //Save Castle if (!OnCastleSaveEvent(castleName, price, features, histEvents, rooms)) { ConsoleDisplay.ErrorCastleNameAlreadyTaken(); } else { bCreating = false; } break; case 7: bCreating = false; break; } } }