Commit 0e407387b06660cc1372ad0ddb31e0c22b603522
1 parent
e4527b29
- KeyGroupList általánosítása folyamatban
Showing
1 changed file
with
26 additions
and
32 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs
... | ... | @@ -46,9 +46,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
46 | 46 | |
47 | 47 | if (!ColorConsole.SilentMode) |
48 | 48 | { |
49 | - var menuservicegroups = DisplayWindowsServiceGroupMenu(config, $"Select the windows service group(s) to manage!"); | |
50 | - if (menuservicegroups == null) { selectedServicegroups = null; if (exitwasrequested) { break; } } | |
49 | + KeyGroupList wsgdefList = KeyGroupList.Factory(config.GetRootElement()); | |
50 | + if (wsgdefList == null) { selectedServicegroups = null; if (exitwasrequested) { break; } } | |
51 | 51 | else { |
52 | + var menuservicegroups = wsgdefList.DisplayKeyGroupMenu(DisplayServiceInfo, ServiceListDisplayer, "Windows services", $"Select the windows service group(s) to manage!"); | |
52 | 53 | menuservicegroups.AddMenuItem(new Menu.ItemSeparator()); |
53 | 54 | menuservicegroups.AddMenuItem(new Menu.Item(CLP.Module.WindowsServiceManager.Function.Purge.KEY, "Purge")); |
54 | 55 | menuservicegroups.AddMenuItem(new Menu.ItemSeparator()); |
... | ... | @@ -276,26 +277,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
276 | 277 | } |
277 | 278 | return menuservices; |
278 | 279 | } |
279 | - public static Menu DisplayWindowsServiceGroupMenu(WindowsServiceManagerXmlProcessor config = null, string prompt = null) | |
280 | - { | |
281 | - if (config == null) { config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); } | |
282 | - var menuservices = new Menu("Windows services", prompt) | |
283 | - .SetMenuItemDisplayer(DisplayServiceInfo) | |
284 | - .SetSelectionMode(Menu.SelectionMode.Single) | |
285 | - .SetMenuHeaderDisplayer(ServiceListDisplayer) | |
286 | - ; | |
287 | - menuservices.ClearMenuItemList(); | |
288 | - | |
289 | - KeyGroupList wsgdefList = config.WinServiceKeyGroupList; | |
290 | - if (wsgdefList == null || !wsgdefList.Any()) return null; | |
291 | - foreach (var wsgdef in wsgdefList) | |
292 | - { | |
293 | - //string menuitemtext = wsgdef.Xml_Description + "(" + string.Join(",", wsgdef.Xml_WindowsServiceKeyList) + ")"; | |
294 | - string menuitemtext = wsgdef.Xml_Description; | |
295 | - menuservices.AddMenuItem(new Menu.Item(wsgdef.Xml_Key, menuitemtext, null, new Menu.ExecutorParameter(pars: wsgdef))); | |
296 | - } | |
297 | - return menuservices; | |
298 | - } | |
299 | 280 | #endregion DisplayServices |
300 | 281 | |
301 | 282 | #region private method: DisplayServiceInfo |
... | ... | @@ -688,7 +669,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
688 | 669 | List<WindowsService> _winservicelist; |
689 | 670 | List<WindowsService> _winservicelistinstartorder; |
690 | 671 | List<WindowsService> _winservicelistinstoporder; |
691 | - public KeyGroupList WinServiceKeyGroupList; | |
692 | 672 | #region constructor |
693 | 673 | public WindowsServiceManagerXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) |
694 | 674 | { |
... | ... | @@ -701,7 +681,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
701 | 681 | _winservicelistinstartorder = ProduceWindowsServiceDefinitionListInStartOrder(); |
702 | 682 | _winservicelistinstoporder = ProduceWindowsServiceDefinitionListInStartOrder(); _winservicelistinstoporder.Reverse(); |
703 | 683 | |
704 | - WinServiceKeyGroupList = new KeyGroupList(this.RootElement); | |
705 | 684 | } |
706 | 685 | #endregion constructor |
707 | 686 | |
... | ... | @@ -1058,16 +1037,13 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
1058 | 1037 | } |
1059 | 1038 | public static KeyGroupList Factory(XElement keygrouplistcontainer) |
1060 | 1039 | { |
1061 | - return new KeyGroupList(keygrouplistcontainer); | |
1062 | - } | |
1063 | - public KeyGroupList(XElement keygrouplistcontainer) | |
1064 | - { | |
1065 | 1040 | var wsgxmllist = keygrouplistcontainer.Elements(XName.Get(nameof(KeyGroup.XmlStructure.KeyGroup))); |
1066 | - if (wsgxmllist != null && wsgxmllist.Any()) | |
1067 | - { | |
1068 | - foreach (var wsgxml in wsgxmllist) { var wsg = new KeyGroup(wsgxml); if (wsg.Valid) { this.Add(wsg); } } | |
1069 | - } | |
1041 | + if (wsgxmllist == null || !wsgxmllist.Any()) return null; | |
1042 | + var kgl = new KeyGroupList(); | |
1043 | + foreach (var wsgxml in wsgxmllist) { var wsg = new KeyGroup(wsgxml); if (wsg.Valid) { kgl.Add(wsg); } } | |
1044 | + return kgl; | |
1070 | 1045 | } |
1046 | + public KeyGroupList() { } | |
1071 | 1047 | public KeyGroupList(List<KeyGroup> keygrouplist) |
1072 | 1048 | { |
1073 | 1049 | foreach (var kg in keygrouplist) { this.Add(kg); } |
... | ... | @@ -1083,6 +1059,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
1083 | 1059 | foreach (var wsg in wsgdefList) { allwskeys = allwskeys.Concat(wsg.Xml_KeyList).ToList(); } |
1084 | 1060 | return allwskeys; |
1085 | 1061 | } |
1062 | + public Menu DisplayKeyGroupMenu(Menu.MenuItemDisplayerFunc menuitemdisplayer, Menu.MenuHeaderDisplayerFunc menuheaderdisplayer, string title, string prompt = null) | |
1063 | + { | |
1064 | + var menuservices = new Menu(title, prompt) | |
1065 | + .SetMenuItemDisplayer(menuitemdisplayer) | |
1066 | + .SetSelectionMode(Menu.SelectionMode.Single) | |
1067 | + .SetMenuHeaderDisplayer(menuheaderdisplayer) | |
1068 | + ; | |
1069 | + menuservices.ClearMenuItemList(); | |
1070 | + | |
1071 | + if (!this.Any()) return null; | |
1072 | + foreach (var wsgdef in this) | |
1073 | + { | |
1074 | + //string menuitemtext = wsgdef.Xml_Description + "(" + string.Join(",", wsgdef.Xml_KeyList) + ")"; | |
1075 | + string menuitemtext = wsgdef.Xml_Description; | |
1076 | + menuservices.AddMenuItem(new Menu.Item(wsgdef.Xml_Key, menuitemtext, null, new Menu.ExecutorParameter(pars: wsgdef))); | |
1077 | + } | |
1078 | + return menuservices; | |
1079 | + } | |
1086 | 1080 | } |
1087 | 1081 | #endregion KeyGroupList class |
1088 | 1082 | } | ... | ... |