Commit 6677f1c5e6f78f328613bd9fbfd9cd2de32c27ac

Authored by Schwirg László
1 parent d531f6b8

- service registration törlés szerviz name alapján a WindowsServiceManager/Purge funkción belül

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>();