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); }
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; } } }