Commit 4515e773689b8e8dbebca5bf2a26fa4cb1ab1238
1 parent
22ea3e7e
v1.5.0
- külső program indítása funkció beépítése
Showing
5 changed files
with
64 additions
and
9 deletions
Show diff stats
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 |