internal static void ShowConsoleMainMenu(ICodeSearcherManager manager, ITextBasedUserInterface tui, IMenuNavigator nav) { do { tui.Clear(); tui.WriteLine("[1] Create New Index"); tui.WriteLine("[2] Show all Indexes"); tui.WriteLine("[3] Exit"); tui.WriteLine("Please choose: "); var answer = tui.ReadLine(); if (int.TryParse(answer, out int selection)) { if (1.Equals(selection)) //Create New Index { nav.GoToCreateNewIndexMenu(manager, tui); } else if (2.Equals(selection)) //Show All Indexes { nav.GoToShowAllIndexesMenu(manager, tui); } else if (3.Equals(selection)) //Exit { nav.ExitMenu(); } } } while (nav.MenuLoopActive()); }
internal static void ShowAllIndexesMenu(ICodeSearcherManager manager, ITextBasedUserInterface tui, IMenuNavigator nav) { string answer; do { tui.Clear(); var indexes = manager.GetAllIndexes().ToList(); int count = 0; foreach (var index in indexes) { tui.WriteLine($"[{++count}] - ID {index.ID} - SourcePath {index.SourcePath}"); } if (indexes.Count == 0) { tui.WriteLine("There are currently no folders indexed!"); } tui.WriteLine($"[{++count}] Return to main menu"); tui.WriteLine("Please choose: "); answer = tui.ReadLine(); if (int.TryParse(answer, out int selection)) { if (indexes.Count > 0 && selection < count) { var selectedIndex = indexes[selection - 1]; nav.GoToSelectedIndexMenu(manager, selectedIndex, tui); } else { nav.GoToMainMenu(tui); } } } while (tui.ShouldLoop()); }