diff --git a/Program.cs b/Program.cs index 8815fb1..8eec712 100644 --- a/Program.cs +++ b/Program.cs @@ -30,6 +30,22 @@ namespace domain_utility { "^[rR]\\d*[-]\\d+[a-zA-Z]+\\d+$", "" } // R54-630300THE01 }; + private static void BackToMenu(Action callback, bool noMessage = false) + { + if (noMessage == false) + Console.WriteLine("\nНажмите Enter чтобы продолжить, ESC чтобы вернуться на главную."); + var key = Console.ReadKey(true).Key; + if (key == ConsoleKey.Enter) + callback.Invoke(); + else if (key == ConsoleKey.Escape) + Menu(); + else + { + Console.WriteLine("Нажмите Enter или ESC!"); + BackToMenu(callback, true); + } + } + private static string PingHost(string host) { string returnMessage = string.Empty; @@ -103,11 +119,12 @@ namespace domain_utility directoryEntry.Close(); Console.WriteLine("Пароль сброшен."); - Main(); + BackToMenu(Menu); } private static void ShowDomainUserInfo() { + Console.Clear(); Console.Write("\nВведите имя пользователя (пр. 'lev.rusanov'): "); string username = Console.ReadLine().Trim(); if (username == string.Empty || username.Length == 0) @@ -162,12 +179,13 @@ namespace domain_utility } } - ShowDomainUserInfo(); + BackToMenu(ShowDomainUserInfo); } private static void ShowComputerBootupTime() { - Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 'IT04', '630300IT04', 'R54-630300IT04'): "); + Console.Clear(); + Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): "); string remote = Console.ReadLine().Trim(); if (remote == string.Empty || remote.Length == 0) { @@ -182,7 +200,7 @@ namespace domain_utility if (remote == string.Empty) { Console.WriteLine("Имя компьютера или IP-адрес не распознаны! Попробуйте еще раз."); - ShowComputerBootupTime(); + BackToMenu(ShowComputerBootupTime); return; } } @@ -201,15 +219,16 @@ namespace domain_utility catch (Exception) { Console.WriteLine("Компьютер не найден. Попробуйте еще раз."); - ShowComputerBootupTime(); + BackToMenu(ShowComputerBootupTime); } - ShowComputerBootupTime(); + BackToMenu(ShowComputerBootupTime); } private static void StartPing() { - Console.Write("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129): "); + Console.Clear(); + Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): "); string host = Console.ReadLine().Trim(); if (host == string.Empty || host.Length == 0) { @@ -223,7 +242,7 @@ namespace domain_utility if (host == string.Empty) { Console.WriteLine("Имя компьютера или IP-адрес не распознаны! Попробуйте еще раз."); - StartPing(); + BackToMenu(StartPing); return; } } @@ -239,14 +258,12 @@ namespace domain_utility catch (Exception) { Console.WriteLine("Компьютер не найден."); - StartPing(); + BackToMenu(StartPing); return; } } else - { Console.WriteLine("Обмен пакетами с {0} по с 32 байтами данных:", host); - } for (int i = 0; i < 10; i++) { @@ -254,12 +271,13 @@ namespace domain_utility Thread.Sleep(1000); } - StartPing(); + BackToMenu(StartPing); } private static void OpenComputerCups() { - Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 'IT04', '630300IT04', 'R54-630300IT04'): "); + Console.Clear(); + Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): "); string remote = Console.ReadLine().Trim(); if (remote == string.Empty || remote.Length == 0) { @@ -273,19 +291,19 @@ namespace domain_utility if (remote == string.Empty) { Console.WriteLine("Имя компьютера или IP-адрес не распознаны! Попробуйте еще раз."); - OpenComputerCups(); + BackToMenu(OpenComputerCups); return; } } Process.Start($"http://{remote.ToUpper()}:631/printers"); - Console.WriteLine(); - Main(); + BackToMenu(OpenComputerCups); } - static void Main() + private static void Menu() { + Console.Clear(); Console.WriteLine("Выберите действие:\n" + "1 - посмотреть информацию о пользователе\n" + "2 - посмотреть дату последней загрузки компьютера (только Windows)\n" + @@ -294,9 +312,7 @@ namespace domain_utility "4 - открыть CUPS выбранного компьютера"); int choice; while (!int.TryParse(Console.ReadLine(), out choice)) - { Console.WriteLine("Введите цифру!"); - } switch (choice) { case 1: ShowDomainUserInfo(); break; @@ -307,10 +323,15 @@ namespace domain_utility default: { Console.WriteLine("Неправильный выбор!"); - Main(); + Menu(); break; } } } + + static void Main() + { + Menu(); + } } }