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 | } | ... | ... |