Commit 4515e773689b8e8dbebca5bf2a26fa4cb1ab1238

Authored by Schwirg László
1 parent 22ea3e7e

v1.5.0

- külső program indítása funkció beépítése
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs
@@ -541,6 +541,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MenuNS @@ -541,6 +541,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MenuNS
541 { 541 {
542 return _config as TXMLPROCESSORTYPE; 542 return _config as TXMLPROCESSORTYPE;
543 } 543 }
  544 + public TXMLPROCESSORTYPE GetConfig2<TXMLPROCESSORTYPE>()
  545 + where TXMLPROCESSORTYPE : XmlLinqBase
  546 + {
  547 + return _config as TXMLPROCESSORTYPE;
  548 + }
544 549
545 private object _config; 550 private object _config;
546 public object Parameters; 551 public object Parameters;
Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs
@@ -41,12 +41,30 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS @@ -41,12 +41,30 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
41 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.RegexTester.KEY, "Regex tester", RegexTester,new Menu.ExecutorParameter(cfg:config))) 41 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.RegexTester.KEY, "Regex tester", RegexTester,new Menu.ExecutorParameter(cfg:config)))
42 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool.KEY, "Tool sample", Tool2, new Menu.ExecutorParameter(cfg: config, null))) 42 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool.KEY, "Tool sample", Tool2, new Menu.ExecutorParameter(cfg: config, null)))
43 .SetSelectionMode(Menu.SelectionMode.Single); 43 .SetSelectionMode(Menu.SelectionMode.Single);
  44 + foreach (var x in config.ExternalUtilityConfigList)
  45 + {
  46 + menufunctions.AddMenuItem(new Menu.Item(x.Key, x.Description, ExternalUtilityStarter, new Menu.ExecutorParameter(cfg: x, null)));
  47 + }
44 menufunctions.ExecuteMenu(); 48 menufunctions.ExecuteMenu();
45 return null; 49 return null;
46 } 50 }
47 #endregion Execute 51 #endregion Execute
48 52
49 #region First level Executors with UI 53 #region First level Executors with UI
  54 + private static object ExternalUtilityStarter(object parameter, object o)
  55 + {
  56 + var config = (parameter as Menu.ExecutorParameter).GetConfig2<MaintenanceToolsXmlProcessor.ExternalUtilityConfig>();
  57 + using (System.Diagnostics.Process pProcess = new System.Diagnostics.Process())
  58 + {
  59 + Process ExternalProcess = new Process();
  60 + ExternalProcess.StartInfo.FileName = config.Exe;
  61 + ExternalProcess.StartInfo.WindowStyle = config.ProcessWindowsStyle;
  62 + ExternalProcess.Start();
  63 + int waitingtime = config.WaitForExit ? -1 : 0;
  64 + ExternalProcess.WaitForExit(waitingtime);
  65 + }
  66 + return o;
  67 + }
50 #region RegexTester 68 #region RegexTester
51 private static object RegexTester(object parameter, object o) 69 private static object RegexTester(object parameter, object o)
52 { 70 {
@@ -97,18 +115,50 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS @@ -97,18 +115,50 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
97 #region MaintenanceToolsXmlProcessor class 115 #region MaintenanceToolsXmlProcessor class
98 public class MaintenanceToolsXmlProcessor : XmlParser 116 public class MaintenanceToolsXmlProcessor : XmlParser
99 { 117 {
  118 + public class ExternalUtilityConfig: XmlLinqBase
  119 + {
  120 + public ExternalUtilityConfig(XElement x)
  121 + {
  122 + Key = GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Key), x, "");
  123 + Exe= GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Exe), x, "");
  124 + Description = GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Description), x, Exe);
  125 + ProcessWindowsStyle = GetValue<ProcessWindowStyle>(nameof(XmlStructure.ExternalUtility.Attributes.WindowStyle), x, XmlStructure.ExternalUtility.Attributes.WindowStyle.Values.DEFAULT);
  126 + WaitForExit= GetValue(nameof(XmlStructure.ExternalUtility.Attributes.WaitForExit), x, XmlStructure.ExternalUtility.Attributes.WaitForExit.Values.DEFAULT);
  127 + Valid = !string.IsNullOrWhiteSpace(Key) && !string.IsNullOrWhiteSpace(Exe) && !string.IsNullOrWhiteSpace(Description);
  128 + }
  129 + public string Key = XmlStructure.ExternalUtility.Attributes.Key.Values.DEFAULT;
  130 + public string Description = XmlStructure.ExternalUtility.Attributes.Description.Values.DEFAULT;
  131 + public string Exe = XmlStructure.ExternalUtility.Attributes.Exe.Values.DEFAULT;
  132 + public ProcessWindowStyle ProcessWindowsStyle = XmlStructure.ExternalUtility.Attributes.WindowStyle.Values.DEFAULT;
  133 + public bool WaitForExit=XmlStructure.ExternalUtility.Attributes.WaitForExit.Values.DEFAULT;
  134 + public bool Valid;
  135 + }
100 public XElement RegexpTesterConfig; 136 public XElement RegexpTesterConfig;
101 - 137 + public List<ExternalUtilityConfig> ExternalUtilityConfigList = new List<ExternalUtilityConfig>();
  138 +
102 #region constructor 139 #region constructor
103 public MaintenanceToolsXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) 140 public MaintenanceToolsXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null)
104 { 141 {
105 RegexpTesterConfig = GetXElement(nameof(XmlStructure.RegexpTester)); 142 RegexpTesterConfig = GetXElement(nameof(XmlStructure.RegexpTester));
  143 + var euElementList = GetAllXElements(nameof(XmlStructure.ExternalUtility));
  144 + foreach (var euElement in euElementList) { var euc = new ExternalUtilityConfig(euElement); if (euc.Valid && !ExternalUtilityConfigList.Exists(x=>x.Key==euc.Key)) { ExternalUtilityConfigList.Add(euc); } }
106 } 145 }
107 #endregion constructor 146 #endregion constructor
108 #region XmlStructure 147 #region XmlStructure
109 public static class XmlStructure 148 public static class XmlStructure
110 { 149 {
111 public static class RegexpTester { } 150 public static class RegexpTester { }
  151 + public static class ExternalUtility
  152 + {
  153 + public static class Attributes
  154 + {
  155 + public static class Key { public static class Values { public static string DEFAULT = ""; } }
  156 + public static class Description { public static class Values { public static string DEFAULT = ""; } }
  157 + public static class Exe { public static class Values { public static string DEFAULT = ""; } }
  158 + public static class WindowStyle { public static class Values { public static ProcessWindowStyle DEFAULT = ProcessWindowStyle.Normal; } }
  159 + public static class WaitForExit { public static class Values { public static bool DEFAULT = true; } }
  160 + }
  161 + }
112 } 162 }
113 #endregion XmlStructure 163 #endregion XmlStructure
114 } 164 }
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.4.0.0")]  
36 -[assembly: AssemblyFileVersion("1.4.0.0")] 35 +[assembly: AssemblyVersion("1.5.0.0")]
  36 +[assembly: AssemblyFileVersion("1.5.0.0")]
Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj
@@ -337,14 +337,14 @@ @@ -337,14 +337,14 @@
337 <Reference Include="Microsoft.CSharp" /> 337 <Reference Include="Microsoft.CSharp" />
338 <Reference Include="System.Data" /> 338 <Reference Include="System.Data" />
339 <Reference Include="System.Xml" /> 339 <Reference Include="System.Xml" />
340 - <Reference Include="VRH.Common, Version=2.21.2.0, Culture=neutral, processorArchitecture=MSIL">  
341 - <HintPath>..\packages\VRH.Common.2.21.2\lib\net45\VRH.Common.dll</HintPath> 340 + <Reference Include="VRH.Common, Version=2.21.3.0, Culture=neutral, processorArchitecture=MSIL">
  341 + <HintPath>..\packages\VRH.Common.2.21.3\lib\net45\VRH.Common.dll</HintPath>
342 </Reference> 342 </Reference>
343 <Reference Include="Vrh.Web.Providers, Version=2.0.2.0, Culture=neutral, processorArchitecture=MSIL"> 343 <Reference Include="Vrh.Web.Providers, Version=2.0.2.0, Culture=neutral, processorArchitecture=MSIL">
344 <HintPath>..\packages\VRH.Web.Providers.2.0.2\lib\net452\Vrh.Web.Providers.dll</HintPath> 344 <HintPath>..\packages\VRH.Web.Providers.2.0.2\lib\net452\Vrh.Web.Providers.dll</HintPath>
345 </Reference> 345 </Reference>
346 - <Reference Include="Vrh.XmlProcessing, Version=1.27.0.0, Culture=neutral, processorArchitecture=MSIL">  
347 - <HintPath>..\packages\Vrh.XmlProcessing.1.27.0\lib\net45\Vrh.XmlProcessing.dll</HintPath> 346 + <Reference Include="Vrh.XmlProcessing, Version=1.27.1.0, Culture=neutral, processorArchitecture=MSIL">
  347 + <HintPath>..\packages\Vrh.XmlProcessing.1.27.1\lib\net45\Vrh.XmlProcessing.dll</HintPath>
348 </Reference> 348 </Reference>
349 </ItemGroup> 349 </ItemGroup>
350 <ItemGroup> 350 <ItemGroup>
Vrh.Log4Pro.MaintenanceConsole/packages.config
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
71 <package id="System.Threading.Timer" version="4.0.1" targetFramework="net472" /> 71 <package id="System.Threading.Timer" version="4.0.1" targetFramework="net472" />
72 <package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="net472" /> 72 <package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="net472" />
73 <package id="System.Xml.XDocument" version="4.0.11" targetFramework="net472" /> 73 <package id="System.Xml.XDocument" version="4.0.11" targetFramework="net472" />
74 - <package id="VRH.Common" version="2.21.2" targetFramework="net472" /> 74 + <package id="VRH.Common" version="2.21.3" targetFramework="net472" />
75 <package id="VRH.Web.Providers" version="2.0.2" targetFramework="net472" /> 75 <package id="VRH.Web.Providers" version="2.0.2" targetFramework="net472" />
76 - <package id="Vrh.XmlProcessing" version="1.27.0" targetFramework="net472" /> 76 + <package id="Vrh.XmlProcessing" version="1.27.1" targetFramework="net472" />
77 </packages> 77 </packages>
78 \ No newline at end of file 78 \ No newline at end of file