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 | 184 | #region class FileCleanerManagerCore |
| 185 | 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 | 196 | #region public GetDirSize |
| 188 | 197 | public static long DirSize(DirectoryInfo d, string filenamemask, string filefullpathregex, bool recurse) |
| 189 | 198 | { |
| 190 | 199 | long size = 0; |
| 191 | 200 | // Add file sizes. |
| 192 | 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 | 203 | // Add subdirectory sizes. |
| 195 | 204 | if (recurse) |
| 196 | 205 | { |
| 197 | 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 | 209 | return size; |
| 201 | 210 | } |
| ... | ... | @@ -288,7 +297,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS |
| 288 | 297 | { |
| 289 | 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 | 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 | 37 | var config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); |
| 38 | 38 | var selectedserviceindexes = CommandLine.GetCommandLineArgument(args, CLP.Module.WindowsServiceManager.Function.CMD_SERVICES); |
| 39 | 39 | var functionkey = CommandLine.GetCommandLineArgument(args, CLP.CMD_FUNCTION); |
| 40 | + bool exitwasrequested = false; | |
| 40 | 41 | while (true) // servicegroup selection |
| 41 | 42 | { |
| 42 | - List<WindowsServiceGroup> selectedServicegroups = null; | |
| 43 | + KeyGroupList selectedServicegroups = null; | |
| 43 | 44 | List<WindowsService> selectedServices = null; |
| 44 | 45 | string selectedFunctionkey = null; |
| 45 | 46 | |
| 46 | 47 | if (!ColorConsole.SilentMode) |
| 47 | 48 | { |
| 48 | 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 | 71 | while (true) //service and function selection |
| 67 | 72 | { |
| 68 | 73 | var menuservices = DisplayWindowsServiceMenu(config, $"Select the windows service(es) to manage!", selectedServicegroups); |
| 69 | 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 | 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 | 78 | else if (sr.Result == Menu.SelectionResult.None) { break; } |
| 74 | 79 | else if (sr.Result == Menu.SelectionResult.Error) { break; } |
| 75 | 80 | else if (sr.Result == Menu.SelectionResult.Ok) { } |
| ... | ... | @@ -88,7 +93,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
| 88 | 93 | //menufunctions.DisplayTitle(); |
| 89 | 94 | menufunctions.DisplayItems(1); |
| 90 | 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 | 97 | else if (srf.Result == Menu.SelectionResult.None) { break; } |
| 93 | 98 | else if (srf.Result == Menu.SelectionResult.Error) { break; } |
| 94 | 99 | else if (srf.Result == Menu.SelectionResult.Ok) { } |
| ... | ... | @@ -254,7 +259,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
| 254 | 259 | |
| 255 | 260 | #region DisplayServices |
| 256 | 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 | 264 | if (config==null) { config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); } |
| 260 | 265 | var menuservices = new Menu("Windows services",prompt) |
| ... | ... | @@ -281,7 +286,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
| 281 | 286 | ; |
| 282 | 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 | 291 | foreach (var wsgdef in wsgdefList) |
| 286 | 292 | { |
| 287 | 293 | //string menuitemtext = wsgdef.Xml_Description + "(" + string.Join(",", wsgdef.Xml_WindowsServiceKeyList) + ")"; |
| ... | ... | @@ -682,7 +688,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
| 682 | 688 | List<WindowsService> _winservicelist; |
| 683 | 689 | List<WindowsService> _winservicelistinstartorder; |
| 684 | 690 | List<WindowsService> _winservicelistinstoporder; |
| 685 | - List<WindowsServiceGroup> _winservicegrouplist; | |
| 691 | + public KeyGroupList WinServiceKeyGroupList; | |
| 686 | 692 | #region constructor |
| 687 | 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 | 701 | _winservicelistinstartorder = ProduceWindowsServiceDefinitionListInStartOrder(); |
| 696 | 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 | 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 | 708 | #region GetWindowsServiceDefinitionList |
| 723 | 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 | 712 | if (wsgList == null) { return _winservicelist; } |
| 727 | 713 | else |
| 728 | 714 | { |
| 729 | 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 | 717 | return wsList; |
| 732 | 718 | } |
| 733 | 719 | } |
| ... | ... | @@ -760,6 +746,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
| 760 | 746 | #endregion GetWindowsServiceDefinitionList |
| 761 | 747 | } |
| 762 | 748 | #endregion WindowsServiceManagerXmlProcessor class |
| 749 | + | |
| 763 | 750 | #region WindowsService class |
| 764 | 751 | public class WindowsService : XmlLinqBase |
| 765 | 752 | { |
| ... | ... | @@ -934,15 +921,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
| 934 | 921 | #region XmlStructure |
| 935 | 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 | 924 | public static class WindowsService |
| 947 | 925 | { |
| 948 | 926 | public static class Attributes |
| ... | ... | @@ -1030,34 +1008,81 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS |
| 1030 | 1008 | #endregion public classes,types |
| 1031 | 1009 | } |
| 1032 | 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 | 32 | // You can specify all the values or you can default the Build and Revision Numbers |
| 33 | 33 | // by using the '*' as shown below: |
| 34 | 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")] | ... | ... |