コード例 #1
0
        private RemovePrompt GetRemovePromptOption()
        {
            RemovePrompt menuOption = RemovePrompt.Invalid;
            int          option     = (int)Char.GetNumericValue(Console.ReadKey(true).KeyChar);

            if (option != -1)
            {
                if (Enum.IsDefined(typeof(RemovePrompt), option))
                {
                    menuOption = (RemovePrompt)option;
                }
            }
            return(menuOption);
        }
コード例 #2
0
        private void SearchPage()
        {
            List <Employee> results    = GetSearchResults();
            int             numResults = results.Count;
            int             page       = 1;
            int             boxIndex   = 1;

            //
            // Display search page menu
            //
            Clear();
            DisplaySearchMenu();

            //
            // Display search results
            //
            DisplayResults(results, page);

            WriteSeperator();

            if (results.Count > 0)
            {
                DrawBox(boxIndex);
            }


            bool       done   = false;
            SearchMenu option = SearchMenu.Invalid;

            while (!done)
            {
                option = GetSearchMenuOption();
                switch (option)
                {
                case SearchMenu.AddParameter:
                    done = true;
                    SearchParameterPage();
                    break;

                case SearchMenu.Edit:
                    if (results.Count > 0)
                    {
                        done = true;
                        InfoPage(results[boxIndex * page - 1], false);
                    }
                    break;

                case SearchMenu.Remove:
                    if (results.Count > 0)
                    {
                        done = true;
                        Clear();
                        DisplayConfirmPrompt();
                        RemovePrompt removeOption = RemovePrompt.Invalid;
                        while (removeOption == RemovePrompt.Invalid && removeOption != RemovePrompt.No)
                        {
                            removeOption = GetRemovePromptOption();
                            switch (removeOption)
                            {
                            case RemovePrompt.Yes:
                                database.Remove(results[boxIndex * page - 1]);
                                break;
                            }
                        }

                        SearchPage();
                    }
                    break;

                case SearchMenu.Down:
                    if (results.Count > 0)
                    {
                        int potentialBoxIndex = (boxIndex < 4) ? boxIndex + 1 : 1;
                        if (potentialBoxIndex + (4 * (page - 1)) <= numResults)
                        {
                            EraseBox(boxIndex);
                            boxIndex = potentialBoxIndex;
                            if (boxIndex == 1)
                            {
                                page++;
                                ClearResults();
                                DisplayResults(results, page);
                            }
                            DrawBox(boxIndex);
                        }
                    }

                    break;

                case SearchMenu.Up:
                    if (results.Count > 0)
                    {
                        if (boxIndex > 1)
                        {
                            EraseBox(boxIndex);
                            boxIndex--;
                            DrawBox(boxIndex);
                        }
                        else if (page > 1)
                        {
                            EraseBox(boxIndex);
                            boxIndex = 4;
                            page--;
                            ClearResults();
                            DisplayResults(results, page);
                            DrawBox(boxIndex);
                        }
                    }
                    break;

                case SearchMenu.Back:
                    done = true;
                    HomePage();
                    break;
                }
            }
        }