Example #1
0
        /// <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;
                }
            }
        }