Esempio n. 1
0
        public async Task <string> RunInterfaceAsync(List <HistoryItem> history)
        {
            var historyToDisplay = history.Select(x => x.CmdLine).Distinct().ToList();
            var control          = Build(historyToDisplay);

            ConsoleManager.Setup();
            ConsoleManager.Content = control;

            ConsoleManager.Resize(new ConsoleGUI.Space.Size(Console.WindowWidth, Console.WindowHeight));
            ConsoleManager.AdjustWindowSize();

            var inputListener = new IInputListener[]
            {
                this,
                listView,
                searchBox
            };

            quit = false;

            while (!quit)
            {
                ConsoleManager.AdjustBufferSize();
                ConsoleManager.ReadInput(inputListener);

                if (updateSearch)
                {
                    updateSearch = false;
                    var searchResults = historyToDisplay.Where(x => x.ToLowerInvariant().Contains(searchBox.Text.ToLowerInvariant())).ToList();
                    listView.Items = searchResults;
                }

                await Task.Delay(50);
            }

            return(listView.SelectedItem);
        }