Commit e4527b2901ea63d4defe1a89f85d628a05e5c448
1 parent
f0aff75d
v1.11.4
- KeyGroupList osztály bevezetése a WindowsServicegroup helyett - folyamatban: a menuelemek csoportosítása (KeyGroup xml elem) és a csoportokból való előválasztást biztosító mechanizmus beépítése a menükezelőbe
Showing
3 changed files
with
115 additions
and
81 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Manager - FileCleanerManager.cs
@@ -184,18 +184,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -184,18 +184,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
184 | #region class FileCleanerManagerCore | 184 | #region class FileCleanerManagerCore |
185 | public static class FileCleanerManagerCore | 185 | public static class FileCleanerManagerCore |
186 | { | 186 | { |
187 | + #region IsDirectoryEmpty | ||
188 | + public static bool IsDirectoryEmpty(DirectoryInfo d) | ||
189 | + { | ||
190 | + FileInfo[] fis = d.GetFiles("*", SearchOption.TopDirectoryOnly); | ||
191 | + DirectoryInfo[] dis = d.GetDirectories(); | ||
192 | + return (fis == null || !fis.Any()) && (dis == null || !dis.Any()); | ||
193 | + } | ||
194 | + #endregion IsDirectoryEmpty | ||
195 | + | ||
187 | #region public GetDirSize | 196 | #region public GetDirSize |
188 | public static long DirSize(DirectoryInfo d, string filenamemask, string filefullpathregex, bool recurse) | 197 | public static long DirSize(DirectoryInfo d, string filenamemask, string filefullpathregex, bool recurse) |
189 | { | 198 | { |
190 | long size = 0; | 199 | long size = 0; |
191 | // Add file sizes. | 200 | // Add file sizes. |
192 | FileInfo[] fis = d.GetFiles(filenamemask, SearchOption.TopDirectoryOnly); | 201 | FileInfo[] fis = d.GetFiles(filenamemask, SearchOption.TopDirectoryOnly); |
193 | - foreach (FileInfo fi in fis) { if (Regex.Match(fi.FullName, filefullpathregex).Success) { size += fi.Length; } } | 202 | + if (fis != null) { foreach (FileInfo fi in fis) { if (Regex.Match(fi.FullName, filefullpathregex).Success) { size += fi.Length; } } } |
194 | // Add subdirectory sizes. | 203 | // Add subdirectory sizes. |
195 | if (recurse) | 204 | if (recurse) |
196 | { | 205 | { |
197 | DirectoryInfo[] dis = d.GetDirectories(); | 206 | DirectoryInfo[] dis = d.GetDirectories(); |
198 | - foreach (DirectoryInfo di in dis) { size += DirSize(di, filenamemask, filefullpathregex, recurse); } | 207 | + if (dis != null) { foreach (DirectoryInfo di in dis) { size += DirSize(di, filenamemask, filefullpathregex, recurse); } } |
199 | } | 208 | } |
200 | return size; | 209 | return size; |
201 | } | 210 | } |
@@ -288,7 +297,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -288,7 +297,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
288 | { | 297 | { |
289 | foreach (DirectoryInfo di in d.GetDirectories()) { cleanedsize += CleanFolderFiles(di, ftc, delete); } | 298 | foreach (DirectoryInfo di in d.GetDirectories()) { cleanedsize += CleanFolderFiles(di, ftc, delete); } |
290 | } | 299 | } |
291 | - if (ftc.Xml_RemoveEmptyFolder && DirSize(d, ftc.Xml_IncludeMask, ftc.Xml_IncludeFullpathRegexp, ftc.Xml_Recurse) == 0) | 300 | + if (ftc.Xml_RemoveEmptyFolder && IsDirectoryEmpty(d)) |
292 | { | 301 | { |
293 | try { Directory.Delete(d.FullName, ftc.Xml_Recurse); } catch { } | 302 | try { Directory.Delete(d.FullName, ftc.Xml_Recurse); } catch { } |
294 | } | 303 | } |
Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs
@@ -37,39 +37,44 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -37,39 +37,44 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
37 | var config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); | 37 | var config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); |
38 | var selectedserviceindexes = CommandLine.GetCommandLineArgument(args, CLP.Module.WindowsServiceManager.Function.CMD_SERVICES); | 38 | var selectedserviceindexes = CommandLine.GetCommandLineArgument(args, CLP.Module.WindowsServiceManager.Function.CMD_SERVICES); |
39 | var functionkey = CommandLine.GetCommandLineArgument(args, CLP.CMD_FUNCTION); | 39 | var functionkey = CommandLine.GetCommandLineArgument(args, CLP.CMD_FUNCTION); |
40 | + bool exitwasrequested = false; | ||
40 | while (true) // servicegroup selection | 41 | while (true) // servicegroup selection |
41 | { | 42 | { |
42 | - List<WindowsServiceGroup> selectedServicegroups = null; | 43 | + KeyGroupList selectedServicegroups = null; |
43 | List<WindowsService> selectedServices = null; | 44 | List<WindowsService> selectedServices = null; |
44 | string selectedFunctionkey = null; | 45 | string selectedFunctionkey = null; |
45 | 46 | ||
46 | if (!ColorConsole.SilentMode) | 47 | if (!ColorConsole.SilentMode) |
47 | { | 48 | { |
48 | var menuservicegroups = DisplayWindowsServiceGroupMenu(config, $"Select the windows service group(s) to manage!"); | 49 | var menuservicegroups = DisplayWindowsServiceGroupMenu(config, $"Select the windows service group(s) to manage!"); |
49 | - menuservicegroups.AddMenuItem(new Menu.ItemSeparator()); | ||
50 | - menuservicegroups.AddMenuItem(new Menu.Item(CLP.Module.WindowsServiceManager.Function.Purge.KEY, "Purge")); | ||
51 | - menuservicegroups.AddMenuItem(new Menu.ItemSeparator()); | 50 | + if (menuservicegroups == null) { selectedServicegroups = null; if (exitwasrequested) { break; } } |
51 | + else { | ||
52 | + menuservicegroups.AddMenuItem(new Menu.ItemSeparator()); | ||
53 | + menuservicegroups.AddMenuItem(new Menu.Item(CLP.Module.WindowsServiceManager.Function.Purge.KEY, "Purge")); | ||
54 | + menuservicegroups.AddMenuItem(new Menu.ItemSeparator()); | ||
52 | 55 | ||
53 | - menuservicegroups.DisplayTitle(); | ||
54 | - menuservicegroups.DisplayItems(1); | ||
55 | - Menu.Selection srg = menuservicegroups.Select(selectedserviceindexes); | ||
56 | - if (srg.Result == Menu.SelectionResult.Exit) { break; } | ||
57 | - else if (srg.Result == Menu.SelectionResult.None) { break; } | ||
58 | - else if (srg.Result == Menu.SelectionResult.Error) { break; } | ||
59 | - else if (srg.Result == Menu.SelectionResult.Ok) { } | ||
60 | - else { } | ||
61 | - if (srg.SelectedKeyList.Contains(CLP.Module.WindowsServiceManager.Function.Purge.KEY) && srg.SelectedKeyList.Count()>1) { continue; } | ||
62 | - if (srg.SelectedKeyList.Contains(CLP.Module.WindowsServiceManager.Function.Purge.KEY)) { Purge(); continue; } | ||
63 | - selectedServicegroups = srg.SelectedParameterList.Select(p => (p.Parameters as WindowsServiceGroup)).ToList(); | 56 | + menuservicegroups.DisplayTitle(); |
57 | + menuservicegroups.DisplayItems(1); | ||
58 | + Menu.Selection srg = menuservicegroups.Select(selectedserviceindexes); | ||
59 | + if (srg.Result == Menu.SelectionResult.Exit) { break; } | ||
60 | + else if (srg.Result == Menu.SelectionResult.None) { break; } | ||
61 | + else if (srg.Result == Menu.SelectionResult.Error) { break; } | ||
62 | + else if (srg.Result == Menu.SelectionResult.Ok) { } | ||
63 | + else { } | ||
64 | + if (srg.SelectedKeyList.Contains(CLP.Module.WindowsServiceManager.Function.Purge.KEY) && srg.SelectedKeyList.Count() > 1) { continue; } | ||
65 | + if (srg.SelectedKeyList.Contains(CLP.Module.WindowsServiceManager.Function.Purge.KEY)) { Purge(); continue; } | ||
66 | + var _selectedServicegroups = srg.SelectedParameterList.Select(p => (p.Parameters as KeyGroupList.KeyGroup)).ToList(); | ||
67 | + selectedServicegroups = new KeyGroupList(_selectedServicegroups); | ||
68 | + } | ||
64 | } | 69 | } |
65 | 70 | ||
66 | while (true) //service and function selection | 71 | while (true) //service and function selection |
67 | { | 72 | { |
68 | var menuservices = DisplayWindowsServiceMenu(config, $"Select the windows service(es) to manage!", selectedServicegroups); | 73 | var menuservices = DisplayWindowsServiceMenu(config, $"Select the windows service(es) to manage!", selectedServicegroups); |
69 | //menuservices.DisplayTitle(); | 74 | //menuservices.DisplayTitle(); |
70 | - menuservices.DisplayItems(1, listheader: selectedServicegroups == null ? null : "Services for groups: " + string.Join(",", selectedServicegroups.Select(wsg => $"{wsg.Xml_Description} ({wsg.Xml_Key})"))); | 75 | + menuservices.DisplayItems(1, listheader: selectedServicegroups == null ? null : "Services for groups: " + string.Join(",", selectedServicegroups.GetOneLineInfoList())); |
71 | Menu.Selection sr = menuservices.Select(selectedserviceindexes); | 76 | Menu.Selection sr = menuservices.Select(selectedserviceindexes); |
72 | - if (sr.Result == Menu.SelectionResult.Exit) { break; } | 77 | + if (sr.Result == Menu.SelectionResult.Exit) { exitwasrequested = true; break; } |
73 | else if (sr.Result == Menu.SelectionResult.None) { break; } | 78 | else if (sr.Result == Menu.SelectionResult.None) { break; } |
74 | else if (sr.Result == Menu.SelectionResult.Error) { break; } | 79 | else if (sr.Result == Menu.SelectionResult.Error) { break; } |
75 | else if (sr.Result == Menu.SelectionResult.Ok) { } | 80 | else if (sr.Result == Menu.SelectionResult.Ok) { } |
@@ -88,7 +93,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -88,7 +93,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
88 | //menufunctions.DisplayTitle(); | 93 | //menufunctions.DisplayTitle(); |
89 | menufunctions.DisplayItems(1); | 94 | menufunctions.DisplayItems(1); |
90 | Menu.Selection srf = menufunctions.Select(functionkey); | 95 | Menu.Selection srf = menufunctions.Select(functionkey); |
91 | - if (srf.Result == Menu.SelectionResult.Exit) { break; } | 96 | + if (srf.Result == Menu.SelectionResult.Exit) { exitwasrequested = true; break; } |
92 | else if (srf.Result == Menu.SelectionResult.None) { break; } | 97 | else if (srf.Result == Menu.SelectionResult.None) { break; } |
93 | else if (srf.Result == Menu.SelectionResult.Error) { break; } | 98 | else if (srf.Result == Menu.SelectionResult.Error) { break; } |
94 | else if (srf.Result == Menu.SelectionResult.Ok) { } | 99 | else if (srf.Result == Menu.SelectionResult.Ok) { } |
@@ -254,7 +259,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -254,7 +259,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
254 | 259 | ||
255 | #region DisplayServices | 260 | #region DisplayServices |
256 | private static void ServiceListDisplayer() { DisplayWindowsServiceMenu(); } | 261 | private static void ServiceListDisplayer() { DisplayWindowsServiceMenu(); } |
257 | - public static Menu DisplayWindowsServiceMenu(WindowsServiceManagerXmlProcessor config=null,string prompt = null,List<WindowsServiceGroup> servicegroups=null) | 262 | + public static Menu DisplayWindowsServiceMenu(WindowsServiceManagerXmlProcessor config=null,string prompt = null, KeyGroupList servicegroups=null) |
258 | { | 263 | { |
259 | if (config==null) { config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); } | 264 | if (config==null) { config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); } |
260 | var menuservices = new Menu("Windows services",prompt) | 265 | var menuservices = new Menu("Windows services",prompt) |
@@ -281,7 +286,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -281,7 +286,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
281 | ; | 286 | ; |
282 | menuservices.ClearMenuItemList(); | 287 | menuservices.ClearMenuItemList(); |
283 | 288 | ||
284 | - List<WindowsServiceGroup> wsgdefList = config.GetWindowsServiceGroupDefinitionList(); | 289 | + KeyGroupList wsgdefList = config.WinServiceKeyGroupList; |
290 | + if (wsgdefList == null || !wsgdefList.Any()) return null; | ||
285 | foreach (var wsgdef in wsgdefList) | 291 | foreach (var wsgdef in wsgdefList) |
286 | { | 292 | { |
287 | //string menuitemtext = wsgdef.Xml_Description + "(" + string.Join(",", wsgdef.Xml_WindowsServiceKeyList) + ")"; | 293 | //string menuitemtext = wsgdef.Xml_Description + "(" + string.Join(",", wsgdef.Xml_WindowsServiceKeyList) + ")"; |
@@ -682,7 +688,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -682,7 +688,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
682 | List<WindowsService> _winservicelist; | 688 | List<WindowsService> _winservicelist; |
683 | List<WindowsService> _winservicelistinstartorder; | 689 | List<WindowsService> _winservicelistinstartorder; |
684 | List<WindowsService> _winservicelistinstoporder; | 690 | List<WindowsService> _winservicelistinstoporder; |
685 | - List<WindowsServiceGroup> _winservicegrouplist; | 691 | + public KeyGroupList WinServiceKeyGroupList; |
686 | #region constructor | 692 | #region constructor |
687 | public WindowsServiceManagerXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) | 693 | public WindowsServiceManagerXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) |
688 | { | 694 | { |
@@ -695,39 +701,19 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -695,39 +701,19 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
695 | _winservicelistinstartorder = ProduceWindowsServiceDefinitionListInStartOrder(); | 701 | _winservicelistinstartorder = ProduceWindowsServiceDefinitionListInStartOrder(); |
696 | _winservicelistinstoporder = ProduceWindowsServiceDefinitionListInStartOrder(); _winservicelistinstoporder.Reverse(); | 702 | _winservicelistinstoporder = ProduceWindowsServiceDefinitionListInStartOrder(); _winservicelistinstoporder.Reverse(); |
697 | 703 | ||
698 | - _winservicegrouplist = new List<WindowsServiceGroup>(); | ||
699 | - var wsgxmllist = GetAllXElements(nameof(WindowsService.XmlStructure.WindowsServiceGroup)); | ||
700 | - if (wsgxmllist != null && wsgxmllist.Any()) | ||
701 | - { | ||
702 | - foreach (var wsgxml in wsgxmllist) { var wsg = new WindowsServiceGroup(wsgxml); if (wsg.Valid) { _winservicegrouplist.Add(wsg); } } | ||
703 | - } | 704 | + WinServiceKeyGroupList = new KeyGroupList(this.RootElement); |
704 | } | 705 | } |
705 | #endregion constructor | 706 | #endregion constructor |
706 | - #region GetWindowsServiceGroupDefinitionList | ||
707 | - public WindowsServiceGroup GetWindowsServiceGroup(string key) { return _winservicegrouplist.FirstOrDefault(x => x.Xml_Key == key); } | ||
708 | - public List<WindowsServiceGroup> GetWindowsServiceGroupDefinitionList() { return _winservicegrouplist; } | ||
709 | - | ||
710 | - | ||
711 | - public List<string> GetGroupWindowsServiceKeyList(string groupkey,out string groupdescription) | ||
712 | - { | ||
713 | - groupdescription = null; | ||
714 | - List<WindowsServiceGroup> wsgdefList = GetWindowsServiceGroupDefinitionList().Where(sgr => sgr.Xml_Key == groupkey || groupkey == null).ToList(); | ||
715 | - if (groupkey != null && wsgdefList != null && wsgdefList.Any()) { groupdescription = wsgdefList.First().Xml_Description; } | ||
716 | - List<string> allwskeys = new List<string>(); | ||
717 | - foreach (var wsg in wsgdefList) { allwskeys = allwskeys.Concat(wsg.Xml_WindowsServiceKeyList).ToList(); } | ||
718 | - return allwskeys; | ||
719 | - } | ||
720 | - #endregion GetWindowsServiceGroupDefinitionList | ||
721 | 707 | ||
722 | #region GetWindowsServiceDefinitionList | 708 | #region GetWindowsServiceDefinitionList |
723 | public WindowsService GetWindowsService(string key) { return _winservicelist.FirstOrDefault(x => x.Xml_Key == key); } | 709 | public WindowsService GetWindowsService(string key) { return _winservicelist.FirstOrDefault(x => x.Xml_Key == key); } |
724 | - public List<WindowsService> GetWindowsServiceDefinitionList(List<WindowsServiceGroup> wsgList=null) | 710 | + public List<WindowsService> GetWindowsServiceDefinitionList(KeyGroupList wsgList =null) |
725 | { | 711 | { |
726 | if (wsgList == null) { return _winservicelist; } | 712 | if (wsgList == null) { return _winservicelist; } |
727 | else | 713 | else |
728 | { | 714 | { |
729 | var wsList = new List<WindowsService>(); | 715 | var wsList = new List<WindowsService>(); |
730 | - foreach (var wsg in wsgList) { wsList = wsList.Concat(wsg.Xml_WindowsServiceKeyList.Select(k=> _winservicelist.FirstOrDefault(ws=>ws.Xml_Key==k))).Where(ws=>ws!=null).ToList(); } | 716 | + foreach (var wsg in wsgList) { wsList = wsList.Concat(wsg.Xml_KeyList.Select(k=> _winservicelist.FirstOrDefault(ws=>ws.Xml_Key==k))).Where(ws=>ws!=null).ToList(); } |
731 | return wsList; | 717 | return wsList; |
732 | } | 718 | } |
733 | } | 719 | } |
@@ -760,6 +746,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -760,6 +746,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
760 | #endregion GetWindowsServiceDefinitionList | 746 | #endregion GetWindowsServiceDefinitionList |
761 | } | 747 | } |
762 | #endregion WindowsServiceManagerXmlProcessor class | 748 | #endregion WindowsServiceManagerXmlProcessor class |
749 | + | ||
763 | #region WindowsService class | 750 | #region WindowsService class |
764 | public class WindowsService : XmlLinqBase | 751 | public class WindowsService : XmlLinqBase |
765 | { | 752 | { |
@@ -934,15 +921,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -934,15 +921,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
934 | #region XmlStructure | 921 | #region XmlStructure |
935 | public static class XmlStructure | 922 | public static class XmlStructure |
936 | { | 923 | { |
937 | - public static class WindowsServiceGroup | ||
938 | - { | ||
939 | - public static class Attributes | ||
940 | - { | ||
941 | - public static class Key { public static class Values { public static string DEFAULT = ""; } } | ||
942 | - public static class Description { public static class Values { public static string DEFAULT = ""; } } | ||
943 | - public static class WindowsServiceKeyList { public static class Values { public static string DEFAULT = ""; } } | ||
944 | - } | ||
945 | - } | ||
946 | public static class WindowsService | 924 | public static class WindowsService |
947 | { | 925 | { |
948 | public static class Attributes | 926 | public static class Attributes |
@@ -1030,34 +1008,81 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | @@ -1030,34 +1008,81 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS | ||
1030 | #endregion public classes,types | 1008 | #endregion public classes,types |
1031 | } | 1009 | } |
1032 | #endregion WindowsService class | 1010 | #endregion WindowsService class |
1033 | - #region WindowsServiceGroup class | ||
1034 | - public class WindowsServiceGroup : XmlLinqBase | ||
1035 | - { | ||
1036 | - public bool Valid; | ||
1037 | - public List<string> Xml_WindowsServiceKeyList; | ||
1038 | - public string Xml_Key; | ||
1039 | - public string Xml_Description; | ||
1040 | - public WindowsServiceGroup() { } | ||
1041 | - public WindowsServiceGroup(WindowsServiceGroup wsg) | 1011 | + |
1012 | + #region KeyGroupList class | ||
1013 | + public class KeyGroupList : List<KeyGroupList.KeyGroup> | ||
1014 | + { | ||
1015 | + public class KeyGroup : XmlLinqBase | ||
1016 | + { | ||
1017 | + public string GetOneLineInfo() { return $"{this.Xml_Description} ({this.Xml_Key})"; } | ||
1018 | + public bool Valid; | ||
1019 | + public List<string> Xml_KeyList; | ||
1020 | + public string Xml_Key; | ||
1021 | + public string Xml_Description; | ||
1022 | + public KeyGroup() { } | ||
1023 | + public KeyGroup(KeyGroup wsg) | ||
1024 | + { | ||
1025 | + Xml_Key = wsg.Xml_Key; | ||
1026 | + Xml_KeyList = wsg.Xml_KeyList.Select(x => x).ToList(); | ||
1027 | + Xml_Description = wsg.Xml_Description; | ||
1028 | + Valid = wsg.Valid; | ||
1029 | + } | ||
1030 | + public KeyGroup(XElement keygroupxml) | ||
1031 | + { | ||
1032 | + Xml_Key = GetValue(nameof(XmlStructure.KeyGroup.Attributes.Key), keygroupxml, XmlStructure.KeyGroup.Attributes.Key.Values.DEFAULT); | ||
1033 | + Xml_Description = GetValue(nameof(XmlStructure.KeyGroup.Attributes.Description), keygroupxml, XmlStructure.KeyGroup.Attributes.Description.Values.DEFAULT); | ||
1034 | + var keycommaliststring = GetValue(nameof(XmlStructure.KeyGroup.Attributes.KeyList), keygroupxml, XmlStructure.KeyGroup.Attributes.KeyList.Values.DEFAULT); | ||
1035 | + Valid = false; | ||
1036 | + if (!string.IsNullOrWhiteSpace(keycommaliststring)) | ||
1037 | + { | ||
1038 | + Xml_KeyList = new List<string>(keycommaliststring.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); | ||
1039 | + if (Xml_KeyList.Contains("*")) { Xml_KeyList = new List<string>() { "*" }; } | ||
1040 | + Valid = Xml_KeyList.Any(); | ||
1041 | + } | ||
1042 | + } | ||
1043 | + | ||
1044 | + #region XmlStructure | ||
1045 | + public static class XmlStructure | ||
1046 | + { | ||
1047 | + public static class KeyGroup | ||
1048 | + { | ||
1049 | + public static class Attributes | ||
1050 | + { | ||
1051 | + public static class Key { public static class Values { public static string DEFAULT = ""; } } | ||
1052 | + public static class Description { public static class Values { public static string DEFAULT = ""; } } | ||
1053 | + public static class KeyList { public static class Values { public static string DEFAULT = ""; } } | ||
1054 | + } | ||
1055 | + } | ||
1056 | + } | ||
1057 | + #endregion XmlStructure | ||
1058 | + } | ||
1059 | + public static KeyGroupList Factory(XElement keygrouplistcontainer) | ||
1042 | { | 1060 | { |
1043 | - Xml_Key = wsg.Xml_Key; | ||
1044 | - Xml_WindowsServiceKeyList = wsg.Xml_WindowsServiceKeyList.Select(x => x).ToList(); | ||
1045 | - Xml_Description = wsg.Xml_Description; | ||
1046 | - Valid = wsg.Valid; | 1061 | + return new KeyGroupList(keygrouplistcontainer); |
1047 | } | 1062 | } |
1048 | - public WindowsServiceGroup(XElement wsgxml) | 1063 | + public KeyGroupList(XElement keygrouplistcontainer) |
1049 | { | 1064 | { |
1050 | - Xml_Key = GetValue(nameof(WindowsService.XmlStructure.WindowsServiceGroup.Attributes.Key), wsgxml, WindowsService.XmlStructure.WindowsServiceGroup.Attributes.Key.Values.DEFAULT); | ||
1051 | - Xml_Description = GetValue(nameof(WindowsService.XmlStructure.WindowsServiceGroup.Attributes.Description), wsgxml, WindowsService.XmlStructure.WindowsServiceGroup.Attributes.Description.Values.DEFAULT); | ||
1052 | - var keycommaliststring = GetValue(nameof(WindowsService.XmlStructure.WindowsServiceGroup.Attributes.WindowsServiceKeyList), wsgxml, WindowsService.XmlStructure.WindowsServiceGroup.Attributes.WindowsServiceKeyList.Values.DEFAULT); | ||
1053 | - Valid = false; | ||
1054 | - if (!string.IsNullOrWhiteSpace(keycommaliststring)) | 1065 | + var wsgxmllist = keygrouplistcontainer.Elements(XName.Get(nameof(KeyGroup.XmlStructure.KeyGroup))); |
1066 | + if (wsgxmllist != null && wsgxmllist.Any()) | ||
1055 | { | 1067 | { |
1056 | - Xml_WindowsServiceKeyList = new List<string>(keycommaliststring.Split(new char[] { ',' },StringSplitOptions.RemoveEmptyEntries)); | ||
1057 | - if (Xml_WindowsServiceKeyList.Contains("*")) { Xml_WindowsServiceKeyList = new List<string>() { "*" }; } | ||
1058 | - Valid = Xml_WindowsServiceKeyList.Any(); | 1068 | + foreach (var wsgxml in wsgxmllist) { var wsg = new KeyGroup(wsgxml); if (wsg.Valid) { this.Add(wsg); } } |
1059 | } | 1069 | } |
1060 | } | 1070 | } |
1071 | + public KeyGroupList(List<KeyGroup> keygrouplist) | ||
1072 | + { | ||
1073 | + foreach (var kg in keygrouplist) { this.Add(kg); } | ||
1074 | + } | ||
1075 | + public List<string> GetOneLineInfoList() { return this.Select(g=>g.GetOneLineInfo()).ToList(); } | ||
1076 | + public KeyGroup GetGroup(string key) { return this.FirstOrDefault(x => x.Xml_Key == key); } | ||
1077 | + public List<string> GetGroupKeyList(string groupkey, out string groupdescription) | ||
1078 | + { | ||
1079 | + groupdescription = null; | ||
1080 | + List<KeyGroup> wsgdefList = this.Where(sgr => sgr.Xml_Key == groupkey || groupkey == null).ToList(); | ||
1081 | + if (groupkey != null && wsgdefList != null && wsgdefList.Any()) { groupdescription = wsgdefList.First().Xml_Description; } | ||
1082 | + List<string> allwskeys = new List<string>(); | ||
1083 | + foreach (var wsg in wsgdefList) { allwskeys = allwskeys.Concat(wsg.Xml_KeyList).ToList(); } | ||
1084 | + return allwskeys; | ||
1085 | + } | ||
1061 | } | 1086 | } |
1062 | - #endregion WindowsServiceGroup class | 1087 | + #endregion KeyGroupList class |
1063 | } | 1088 | } |
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | ||
32 | // You can specify all the values or you can default the Build and Revision Numbers | 32 | // You can specify all the values or you can default the Build and Revision Numbers |
33 | // by using the '*' as shown below: | 33 | // by using the '*' as shown below: |
34 | // [assembly: AssemblyVersion("1.0.*")] | 34 | // [assembly: AssemblyVersion("1.0.*")] |
35 | -[assembly: AssemblyVersion("1.11.3.0")] | ||
36 | -[assembly: AssemblyFileVersion("1.11.3.0")] | 35 | +[assembly: AssemblyVersion("1.11.4.0")] |
36 | +[assembly: AssemblyFileVersion("1.11.4.0")] |