Commit 41698df242496be7da6f224e5ea292680ae7f158

Authored by Schwirg László
1 parent b629ffb6

v1.10.0.0

- Külső exe indítás paraméterezhetőségeése
Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs
... ... @@ -16,7 +16,7 @@ using Vrh.Log4Pro.MaintenanceConsole.MenuNS;
16 16 using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS;
17 17 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
18 18 using Vrh.Log4Pro.MaintenanceConsole.ToolsNS;
19   -
  19 +using VRH.Common;
20 20  
21 21 using Vrh.XmlProcessing;
22 22 using System.Xml.Linq;
... ... @@ -54,7 +54,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
54 54 #endregion Execute
55 55  
56 56 #region First level Executors with UI
57   - private static object ExternalUtilityStarter(object parameter, object o)
  57 + private static object ExternalUtilityStarter(object parameter, object o)
58 58 {
59 59 var config = (parameter as Menu.ExecutorParameter).GetConfig2<MaintenanceToolsXmlProcessor.ExternalUtilityConfig>();
60 60 using (System.Diagnostics.Process pProcess = new System.Diagnostics.Process())
... ... @@ -62,6 +62,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
62 62 Process ExternalProcess = new Process();
63 63 ExternalProcess.StartInfo.FileName = config.Exe;
64 64 ExternalProcess.StartInfo.WindowStyle = config.ProcessWindowsStyle;
  65 +
  66 + ExternalProcess.StartInfo.Arguments = config.Arguments;
65 67 ExternalProcess.Start();
66 68 int waitingtime = config.WaitForExit ? -1 : 0;
67 69 ExternalProcess.WaitForExit(waitingtime);
... ... @@ -380,19 +382,42 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
380 382 {
381 383 public ExternalUtilityConfig(XElement x)
382 384 {
383   - Key = GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Key), x, "");
384   - Exe= GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Exe), x, "");
385   - Description = GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Description), x, Exe);
  385 + ArgumentParametersDictionary = GetValue(nameof(XmlStructure.ExternalUtility.Attributes.ArgumentParameters), x, XmlStructure.ExternalUtility.Attributes.ArgumentParameters.Values.DEFAULT).Split(new char[] { ';', ',' }, StringSplitOptions.RemoveEmptyEntries)
  386 + .Select(kvp => CreateKVP(kvp))
  387 + .Where(kvp => kvp.Key != null)
  388 + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
  389 +
  390 + Key = VRH.Common.StringConstructor.ResolveConstructorR(ArgumentParametersDictionary, GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Key), x, ""), "{}@@");
  391 + Description = VRH.Common.StringConstructor.ResolveConstructorR(ArgumentParametersDictionary, GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Description), x, Exe), "{}@@");
  392 + Arguments = VRH.Common.StringConstructor.ResolveConstructorR(ArgumentParametersDictionary, GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Arguments), x, XmlStructure.ExternalUtility.Attributes.Arguments.Values.DEFAULT), "{}@@");
  393 +
  394 + Exe = GetValue(nameof(XmlStructure.ExternalUtility.Attributes.Exe), x, "");
386 395 ProcessWindowsStyle = GetValue<ProcessWindowStyle>(nameof(XmlStructure.ExternalUtility.Attributes.WindowStyle), x, XmlStructure.ExternalUtility.Attributes.WindowStyle.Values.DEFAULT);
387 396 WaitForExit= GetValue(nameof(XmlStructure.ExternalUtility.Attributes.WaitForExit), x, XmlStructure.ExternalUtility.Attributes.WaitForExit.Values.DEFAULT);
388 397 Valid = !string.IsNullOrWhiteSpace(Key) && !string.IsNullOrWhiteSpace(Exe) && !string.IsNullOrWhiteSpace(Description);
389 398 }
390 399 public string Key = XmlStructure.ExternalUtility.Attributes.Key.Values.DEFAULT;
391 400 public string Description = XmlStructure.ExternalUtility.Attributes.Description.Values.DEFAULT;
  401 + public string Arguments = XmlStructure.ExternalUtility.Attributes.Arguments.Values.DEFAULT;
  402 + public Dictionary<string,string> ArgumentParametersDictionary = null;
392 403 public string Exe = XmlStructure.ExternalUtility.Attributes.Exe.Values.DEFAULT;
393 404 public ProcessWindowStyle ProcessWindowsStyle = XmlStructure.ExternalUtility.Attributes.WindowStyle.Values.DEFAULT;
394 405 public bool WaitForExit=XmlStructure.ExternalUtility.Attributes.WaitForExit.Values.DEFAULT;
395 406 public bool Valid;
  407 +
  408 + private static KeyValuePair<string, string> CreateKVP(string kvpstring)
  409 + {
  410 + string kvpk = null;
  411 + string kvpv = null;
  412 + try
  413 + {
  414 + kvpk = kvpstring.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries)[0]; if (string.IsNullOrWhiteSpace(kvpk)) { kvpk = null; }
  415 + kvpv = kvpstring.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries)[1];
  416 + KeyValuePair<string, string> r = new KeyValuePair<string, string>(kvpk, kvpv);
  417 + return r;
  418 + }
  419 + catch { return new KeyValuePair<string, string>(kvpk, null); }
  420 + }
396 421 }
397 422 public XElement RegexpTesterConfig;
398 423 public XElement PingerConfigXml;
... ... @@ -446,6 +471,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
446 471 public static class Key { public static class Values { public static string DEFAULT = ""; } }
447 472 public static class Description { public static class Values { public static string DEFAULT = ""; } }
448 473 public static class Exe { public static class Values { public static string DEFAULT = ""; } }
  474 + public static class Arguments{ public static class Values { public static string DEFAULT = ""; } }
  475 + public static class ArgumentParameters { public static class Values { public static string DEFAULT = ""; } }
449 476 public static class WindowStyle { public static class Values { public static ProcessWindowStyle DEFAULT = ProcessWindowStyle.Normal; } }
450 477 public static class WaitForExit { public static class Values { public static bool DEFAULT = true; } }
451 478 }
... ...
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.9.3.0")]
36   -[assembly: AssemblyFileVersion("1.9.3.0")]
  35 +[assembly: AssemblyVersion("1.10.0.0")]
  36 +[assembly: AssemblyFileVersion("1.10.0.0")]
... ...