Beispiel #1
0
        public void SearchContacts(string keyWord = null)
        {
            Console.Clear();
            ConsoleKeyInfo keyInfo;

            Contact[] contacts = null;

            if (keyWord == null)
            {
                keyWord = string.Empty;
            }
            else //знаходимо та показуємо результат
            {
                Console.Write("Search:" + keyWord);
                try
                {
                    contacts = searcher.FindAll(keyWord).ToArray();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    return;
                }
                ShowFoundContacts(contacts);
                Thread.Sleep(500);
                Console.Clear();
            }
            string key = keyWord;

            Console.Write("Search:" + keyWord);
            keyInfo = Console.ReadKey();
            //читаємо останній введений символ
            switch (keyInfo.Key)
            {
            case ConsoleKey.Backspace:         //стираємо останній символ в стоці пошуку
                if (key != String.Empty)
                {
                    key = key.Remove(key.Length - 1);
                }
                SearchContacts(key);
                break;

            case ConsoleKey.Enter:          //закінчуємо пошук, показуючи результат
                if (contacts != null)
                {
                    ShowFoundContacts(contacts);
                }
                else
                {
                    Console.Clear();
                    return;
                }
                Console.ReadKey();
                Console.Clear();
                return;

            default:
                //додаємо символ до стоки пошуку
                if (char.IsLetterOrDigit(keyInfo.KeyChar))
                {
                    key = keyWord + keyInfo.KeyChar.ToString();
                    SearchContacts(key);
                }
                break;
            }
        }