private SearchParameterMenu GetSearchParameterOption() { SearchParameterMenu menuOption = SearchParameterMenu.Invalid; int option = (int)Char.GetNumericValue(Console.ReadKey(true).KeyChar); if (option != -1) { if (Enum.IsDefined(typeof(SearchParameterMenu), option)) { menuOption = (SearchParameterMenu)option; } } return(menuOption); }
private void SearchParameterPage() { Clear(); DisplaySearchParameterMenu(); bool done = false; while (!done) { TextBox txtParameterValue = null; ConsoleKey exitKey = ConsoleKey.A; SearchParameterMenu option = GetSearchParameterOption(); if (option != SearchParameterMenu.Back && option != SearchParameterMenu.Invalid) { Clear(); if (option == SearchParameterMenu.Type) { DisplayTypeParameterPrompt(); ConsoleKeyInfo keyInfo = Console.ReadKey(true); ConsoleKey key = keyInfo.Key; int numericOption = (int)Char.GetNumericValue(keyInfo.KeyChar); switch ((EmployeeType)numericOption) { case EmployeeType.ANY: typeParam = Database.kAnyTag; break; case EmployeeType.FullTime: typeParam = Database.kFullTimeEmp; break; case EmployeeType.PartTime: typeParam = Database.kPartTimeEmp; break; case EmployeeType.Contract: typeParam = Database.kContractEmp; break; case EmployeeType.Seasonal: typeParam = Database.kSeasonalEmp; break; } } else { DisplayParameterPrompt(); txtParameterValue = new TextBox(width / 2 - 15, 6, 30); exitKey = ConsoleKey.A; switch (option) { case SearchParameterMenu.Type: txtParameterValue.Text = (typeParam == "<ANY>") ? "" : typeParam; break; case SearchParameterMenu.First: txtParameterValue.Text = (firstNameParam == "<ANY>") ? "" : firstNameParam; break; case SearchParameterMenu.Last: txtParameterValue.Text = (lastNameParam == "<ANY>") ? "" : lastNameParam; break; case SearchParameterMenu.SIN: txtParameterValue.Text = (sinParam == "<ANY>") ? "" : sinParam; break; case SearchParameterMenu.DateOfBirth: txtParameterValue.Text = (dateOfBirthParam == "<ANY>") ? "" : dateOfBirthParam; break; } while (exitKey != ConsoleKey.Enter && exitKey != ConsoleKey.Escape) { exitKey = txtParameterValue.Focus(); } } } switch (option) { case SearchParameterMenu.Type: if (exitKey == ConsoleKey.Enter) { typeParam = (txtParameterValue.Text == "") ? Database.kAnyTag : txtParameterValue.Text; } break; case SearchParameterMenu.First: if (exitKey == ConsoleKey.Enter) { firstNameParam = (txtParameterValue.Text == "") ? Database.kAnyTag : txtParameterValue.Text; } break; case SearchParameterMenu.Last: if (exitKey == ConsoleKey.Enter) { lastNameParam = (txtParameterValue.Text == "") ? Database.kAnyTag : txtParameterValue.Text; } break; case SearchParameterMenu.SIN: if (exitKey == ConsoleKey.Enter) { sinParam = (txtParameterValue.Text == "") ? Database.kAnyTag : txtParameterValue.Text; } break; case SearchParameterMenu.DateOfBirth: if (exitKey == ConsoleKey.Enter) { dateOfBirthParam = (txtParameterValue.Text == "") ? Database.kAnyTag : txtParameterValue.Text; } break; case SearchParameterMenu.Back: done = true; SearchPage(); break; } if (option != SearchParameterMenu.Back && option != SearchParameterMenu.Invalid) { Clear(); DisplaySearchParameterMenu(); } } }