Commit 6677f1c5e6f78f328613bd9fbfd9cd2de32c27ac
1 parent
d531f6b8
- service registration törlés szerviz name alapján a WindowsServiceManager/Purge funkción belül
Showing
1 changed file
with
40 additions
and
30 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs
| @@ -59,49 +59,59 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -59,49 +59,59 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
| 59 | var config = (parameter as Menu.ExecutorParameter).GetConfig<WindowsServiceManagerXmlProcessor>(); | 59 | var config = (parameter as Menu.ExecutorParameter).GetConfig<WindowsServiceManagerXmlProcessor>(); |
| 60 | while (true) | 60 | while (true) |
| 61 | { | 61 | { |
| 62 | - ColorConsole.Write($"Enter servicename mask (% and ? are wildchars)!", ConsoleColor.Yellow); | 62 | + ColorConsole.WriteLine($"Enter servicename mask to select from the result list (% and ? are wildchars)...", ConsoleColor.Yellow); |
| 63 | + ColorConsole.WriteLine($"...or enter service name directly (put an asterisk (*) before the name).", ConsoleColor.Yellow); | ||
| 63 | var mask = ColorConsole.ReadLine($" ---> ", ConsoleColor.Yellow).ToUpper(); | 64 | var mask = ColorConsole.ReadLine($" ---> ", ConsoleColor.Yellow).ToUpper(); |
| 64 | if (mask == "EX") { return o; } | 65 | if (mask == "EX") { return o; } |
| 65 | else if (mask == "") { continue; } | 66 | else if (mask == "") { continue; } |
| 66 | - var sl = WindowsServiceManagerCore.GetServiceControllers(mask); | ||
| 67 | - if (sl.Length > 10) { sl = sl.Take(10).ToArray(); } | ||
| 68 | - | ||
| 69 | - var menuservices = new Menu("Windows services", "Select the windows service(es) to delete (max 10 in one run)!") | ||
| 70 | - .SetSelectionMode(Menu.SelectionMode.Multi); | ||
| 71 | - | ||
| 72 | - for (var i = 0; i < sl.Length; i++) | ||
| 73 | - { | ||
| 74 | - menuservices.AddMenuItem(new Menu.Item(null, $"{sl[i].ServiceName} ({sl[i].DisplayName})", null, new Menu.ExecutorParameter(pars:sl[i].ServiceName))); | ||
| 75 | - } | ||
| 76 | - menuservices.DisplayItems(1); | ||
| 77 | - var ms = menuservices.Select(); | ||
| 78 | - if (ms.Result == Menu.SelectionResult.None) { continue; } | ||
| 79 | - else if (ms.Result == Menu.SelectionResult.Error) { continue; } | ||
| 80 | - else if (ms.Result == Menu.SelectionResult.Exit) { break; } | 67 | + |
| 68 | + if (mask.StartsWith("*") && mask.Length>=2) { DeleteOneService(mask.Substring(1)); } | ||
| 81 | else | 69 | else |
| 82 | { | 70 | { |
| 83 | - foreach (var p in ms.SelectedParameterList) | 71 | + var sl = WindowsServiceManagerCore.GetServiceControllers(mask); |
| 72 | + if (sl.Length > 10) { sl = sl.Take(10).ToArray(); } | ||
| 73 | + | ||
| 74 | + var menuservices = new Menu("Windows services", "Select the windows service(es) to delete (max 10 in one run)!") | ||
| 75 | + .SetSelectionMode(Menu.SelectionMode.Multi); | ||
| 76 | + | ||
| 77 | + for (var i = 0; i < sl.Length; i++) | ||
| 84 | { | 78 | { |
| 85 | - ColorConsole.Write($"Enter CONFIRM to delete service ", ConsoleColor.Yellow); | ||
| 86 | - ColorConsole.Write($"{p}", ConsoleColor.White, bracket: "''"); | ||
| 87 | - ColorConsole.Write($"!", ConsoleColor.Yellow); | ||
| 88 | - var confirmation = ColorConsole.ReadLine(prefix: " ---> ").ToUpper(); | ||
| 89 | - if (confirmation == "EX") { return o; } | ||
| 90 | - else if (confirmation == "") | ||
| 91 | - { | ||
| 92 | - ColorConsole.WriteLine($"Service '{p}' skipped!", ConsoleColor.Green); | ||
| 93 | - continue; | ||
| 94 | - } | ||
| 95 | - else if (confirmation == "CONFIRM") | 79 | + menuservices.AddMenuItem(new Menu.Item(null, $"{sl[i].ServiceName} ({sl[i].DisplayName})", null, new Menu.ExecutorParameter(pars: sl[i].ServiceName))); |
| 80 | + } | ||
| 81 | + menuservices.DisplayItems(1); | ||
| 82 | + var ms = menuservices.Select(); | ||
| 83 | + if (ms.Result == Menu.SelectionResult.None) { continue; } | ||
| 84 | + else if (ms.Result == Menu.SelectionResult.Error) { continue; } | ||
| 85 | + else if (ms.Result == Menu.SelectionResult.Exit) { break; } | ||
| 86 | + else | ||
| 87 | + { | ||
| 88 | + foreach (var p in ms.SelectedParameterList) | ||
| 96 | { | 89 | { |
| 97 | - WindowsServiceManagerCore.Unregister((string)(p.Parameters)); | ||
| 98 | - ColorConsole.WriteLine($"Service '{p}' deleted!", ConsoleColor.Green); | 90 | + if (DeleteOneService((string)(p.Parameters))) { return o; } |
| 99 | } | 91 | } |
| 100 | } | 92 | } |
| 101 | } | 93 | } |
| 102 | } | 94 | } |
| 103 | return o; | 95 | return o; |
| 104 | } | 96 | } |
| 97 | + private static bool DeleteOneService(string servicename) | ||
| 98 | + { | ||
| 99 | + ColorConsole.Write($"Enter CONFIRM to delete service ", ConsoleColor.Yellow); | ||
| 100 | + ColorConsole.Write(servicename, ConsoleColor.White, bracket: "''"); | ||
| 101 | + ColorConsole.Write($"!", ConsoleColor.Yellow); | ||
| 102 | + var confirmation = ColorConsole.ReadLine(prefix: " ---> ").ToUpper(); | ||
| 103 | + if (confirmation == "EX") { return true; } | ||
| 104 | + else if (confirmation == "") | ||
| 105 | + { | ||
| 106 | + ColorConsole.WriteLine($"Service '{servicename}' NOT deleted!", ConsoleColor.Green); | ||
| 107 | + } | ||
| 108 | + else if (confirmation == "CONFIRM") | ||
| 109 | + { | ||
| 110 | + WindowsServiceManagerCore.Unregister(servicename); | ||
| 111 | + ColorConsole.WriteLine($"Service '{servicename}' deleted!", ConsoleColor.Green); | ||
| 112 | + } | ||
| 113 | + return false; | ||
| 114 | + } | ||
| 105 | private static object Kill(object parameter, object o) | 115 | private static object Kill(object parameter, object o) |
| 106 | { | 116 | { |
| 107 | var config = (parameter as Menu.ExecutorParameter).GetConfig<WindowsServiceManagerXmlProcessor>(); | 117 | var config = (parameter as Menu.ExecutorParameter).GetConfig<WindowsServiceManagerXmlProcessor>(); |