/// <summary> /// Displays the menu and handles the inputs for Searching /// castles. Either displaying all the castles or searching /// based on a specific characteristic of a castle. /// </summary> public void SearchCastles() { const int MIN_ANSWER = 1; const int MAX_ANSWER = 3; int answer; bool bExit = false; string userInput, searchParams; Dictionary <string, Dictionary <string, List <string> > > castleList; while (!bExit) { ConsoleDisplay.DisplayCastleSearchMenu(); do { Console.Write("Enter: "); userInput = Console.ReadLine(); answer = ConsoleUtil.TryUserInputConvert(userInput); } while ((answer < MIN_ANSWER) || (answer > MAX_ANSWER)); switch (answer) { case 1: // View all castles castleList = OnSearchAllEvent(); if (!ConsoleUtil.CheckEmptyCastleCollection(castleList.Count)) { WishlistAdditionCastleView(castleList); } break; case 2: // search by caracteristics ConsoleDisplay.DisplayCastleSearchByCharacteristic(); searchParams = Console.ReadLine(); castleList = OnCharacteristicSearch(searchParams); if (!ConsoleUtil.CheckEmptyCastleCollection(castleList.Count)) { WishlistAdditionCastleView(castleList); } break; case 3: bExit = true; break; } } }