private static string GetTextToSearch(SearchCriterion searchCriterion) { string textToSearch; do { Console.Write($"\nEnter a drink {searchCriterion.ToString().ToLower()} to find: "); textToSearch = Console.ReadLine(); } while (string.IsNullOrWhiteSpace(textToSearch)); return(textToSearch); }
private void SelectControls(SearchCriterion searchCriterion) { System.Diagnostics.Debug.WriteLine("Switching: " + searchCriterion.ToString()); switch (searchCriterion) { case SearchCriterion.Product: tC_main.SelectedTab = tC_main.TabPages["tP_products"]; lV_searchResult = lV_products; break; case SearchCriterion.ProductWithLicense: tC_main.SelectedTab = tC_main.TabPages["tP_licenseProduct"]; lV_searchResult = lV_licenseProduct; break; case SearchCriterion.LicenseByProduct: tC_main.SelectedTab = tC_main.TabPages["tP_licenseProduct"]; lV_searchResult = lV_licenseDetailProduct; break; case SearchCriterion.UserWithLicense: tC_main.SelectedTab = tC_main.TabPages["tP_licenseUser"]; lV_searchResult = lV_licenseUser; break; case SearchCriterion.LicenseByUser: tC_main.SelectedTab = tC_main.TabPages["tP_licenseUser"]; lV_searchResult = lV_licenseDetailUser; break; default: tC_main.SelectedTab = tC_main.TabPages["tP_products"]; lV_searchResult = lV_products; break; } }
private void SelectControls(SearchCriterion searchCriterion) { System.Diagnostics.Debug.WriteLine("Switching: " + searchCriterion.ToString()); switch (searchCriterion) { case SearchCriterion.Product: tC_main.SelectedTab = tC_main.TabPages["tP_products"]; lV_searchResult = lV_products; break; case SearchCriterion.ProductWithLicense: tC_main.SelectedTab = tC_main.TabPages["tP_licenseProduct"]; lV_searchResult = lV_licenseProduct; break; case SearchCriterion.LicenseByProduct: tC_main.SelectedTab = tC_main.TabPages["tP_licenseProduct"]; lV_searchResult = lV_licenseDetailProduct; break; case SearchCriterion.UserWithLicense: tC_main.SelectedTab = tC_main.TabPages["tP_licenseUser"]; lV_searchResult = lV_licenseUser; break; case SearchCriterion.LicenseByUser: tC_main.SelectedTab = tC_main.TabPages["tP_licenseUser"]; lV_searchResult = lV_licenseDetailUser; break; default: tC_main.SelectedTab = tC_main.TabPages["tP_products"]; lV_searchResult = lV_products; break; } }
public static void StartSearch(List <Drink> drinksList, SearchCriterion searchCriterion) { bool continueSearch = true; do { Console.Clear(); Console.WriteLine($"\nSearch drink by {searchCriterion}\n".ToUpper()); Console.WriteLine("-------------------------------------------------------------------------------------------------------------------"); List <Drink> drinksFound = null; switch (searchCriterion) { case SearchCriterion.Name: var nameToSearch = GetTextToSearch(searchCriterion); drinksFound = SearchDrink.SearchByName(nameToSearch, drinksList); break; case SearchCriterion.Ingredients: Console.WriteLine("\nInstructions: \nYou can provide ONE or MORE ingredients - separated with a space. \nYou can search drinks containing ALL or ANY of provided ingredients."); Console.WriteLine("\nWould you like to display drinks containing: \n1. ALL provided ingredients \n2. ANY of provided ingredients\n(1/2) "); var searchOption = SearchDrinkOption.All; bool incorrectInputIngredientsChoice; do { var searchOptionChoice = Console.ReadKey(); switch (searchOptionChoice.KeyChar) { case '1': searchOption = SearchDrinkOption.All; incorrectInputIngredientsChoice = false; break; case '2': searchOption = SearchDrinkOption.Any; incorrectInputIngredientsChoice = false; break; default: Console.WriteLine("\nPlease enter correct answer."); incorrectInputIngredientsChoice = true; break; } } while (incorrectInputIngredientsChoice); var ingredientsToSearch = GetTextToSearch(searchCriterion); drinksFound = SearchDrink.SearchByIngredients(new SortedSet <string>(ingredientsToSearch.Split(' ')), drinksList, searchOption); break; } if (drinksFound != null && drinksFound.Count == 0) { Console.WriteLine("\nNo drinks found in the database matching your criteria."); } else { PagingHandler.DivideDrinkListIntoPages(drinksFound); } var incorrectInputEndSearch = true; do { Console.Write($"\nContinue search by {searchCriterion.ToString().ToLower()} (yes: [y/enter] / no: [n/esc])? "); var continueUserInput = Console.ReadKey(); if (continueUserInput.KeyChar == 'y' || continueUserInput.KeyChar == 'Y' || continueUserInput.Key == ConsoleKey.Enter) { incorrectInputEndSearch = false; } else if (continueUserInput.KeyChar == 'n' || continueUserInput.KeyChar == 'N' || continueUserInput.Key == ConsoleKey.Escape) { incorrectInputEndSearch = false; continueSearch = false; } } while (incorrectInputEndSearch); } while (continueSearch); }