Commit 0cafa26d5985df8890d868ea1f77a50a885b351e

Authored by Schwirg László
1 parent 2ff9a39c

InstallManager létrehozása és alap funkciók hozzáadása

Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs
@@ -206,6 +206,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS @@ -206,6 +206,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS
206 { 206 {
207 public const string CMD_WEBAPPS = "-WEBAPPS"; 207 public const string CMD_WEBAPPS = "-WEBAPPS";
208 public static class Register { public const string KEY = "WAR"; } 208 public static class Register { public const string KEY = "WAR"; }
  209 + public static class ConfigureIIS { public const string KEY = "IIS"; }
209 public static class Unregister { public const string KEY = "WAU"; } 210 public static class Unregister { public const string KEY = "WAU"; }
210 public static class SetImpersonateIdentity { public const string KEY = "WAI"; } 211 public static class SetImpersonateIdentity { public const string KEY = "WAI"; }
211 public static class PoolStart { public const string KEY = "APS"; } 212 public static class PoolStart { public const string KEY = "APS"; }
@@ -282,14 +283,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS @@ -282,14 +283,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS
282 public static class RelocatePhysicalFiles { public const string KEY = "COP"; } 283 public static class RelocatePhysicalFiles { public const string KEY = "COP"; }
283 } 284 }
284 } 285 }
  286 +
  287 + public static class InstallManager
  288 + {
  289 + public const string KEY = "INM";
  290 + public static class Functions
  291 + {
  292 + public static class EnvironmentInstall { public const string KEY = "ENV"; }
  293 + public static class RestartServer { public const string KEY = "RST"; }
  294 + public static class ConfigureIIS { public const string KEY = "IIS"; }
  295 + }
  296 + }
285 public static class MaintenanceToolManager 297 public static class MaintenanceToolManager
286 { 298 {
287 public const string KEY = "TOL"; 299 public const string KEY = "TOL";
288 public static class Functions 300 public static class Functions
289 { 301 {
290 public static class RegexTester { public const string KEY = "RGX"; } 302 public static class RegexTester { public const string KEY = "RGX"; }
291 - public static class Tool1 { public const string KEY = "TL1"; }  
292 - public static class Tool2 { public const string KEY = "TL2"; } 303 + public static class Tool { public const string KEY = "TOL"; }
293 } 304 }
294 } 305 }
295 } 306 }
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Membership.cs
@@ -421,7 +421,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS @@ -421,7 +421,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS
421 /// <returns></returns> 421 /// <returns></returns>
422 public static VRH.Common.ReturnInfoJSON RolesToUser(string rolenamecommalist, string usernamecommalist) 422 public static VRH.Common.ReturnInfoJSON RolesToUser(string rolenamecommalist, string usernamecommalist)
423 { 423 {
424 - DAL.RoleGroup urg;  
425 ReturnInfoJSON result = new ReturnInfoJSON() { ReturnMessage = "Assignment was successful!" }; 424 ReturnInfoJSON result = new ReturnInfoJSON() { ReturnMessage = "Assignment was successful!" };
426 try 425 try
427 { 426 {
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs
@@ -174,5 +174,40 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS @@ -174,5 +174,40 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS
174 if (extension == null) { extension = ".tmp"; } 174 if (extension == null) { extension = ".tmp"; }
175 return Path.Combine(directorypath, DateTime.Now.ToString($"TMP_yyyyMMddHHmmssfffffff.{extension}")); 175 return Path.Combine(directorypath, DateTime.Now.ToString($"TMP_yyyyMMddHHmmssfffffff.{extension}"));
176 } 176 }
  177 + public static void ShutDown(ShutDownMode oparation)
  178 + {
  179 + string filename = string.Empty;
  180 + string arguments = string.Empty;
  181 + switch (oparation)
  182 + {
  183 + case ShutDownMode.ShutDown:
  184 + filename = "shutdown.exe";
  185 + arguments = "-s";
  186 + break;
  187 + case ShutDownMode.Restart:
  188 + filename = "shutdown.exe";
  189 + arguments = "-r";
  190 + break;
  191 + case ShutDownMode.Logoff:
  192 + filename = "shutdown.exe";
  193 + arguments = "-l";
  194 + break;
  195 + case ShutDownMode.Lock:
  196 + filename = "Rundll32.exe";
  197 + arguments = "User32.dll, LockWorkStation";
  198 + break;
  199 + case ShutDownMode.Hibernation:
  200 + filename = @"%windir%\system32\rundll32.exe";
  201 + arguments = "PowrProf.dll, SetSuspendState";
  202 + break;
  203 + case ShutDownMode.Sleep:
  204 + filename = "Rundll32.exe";
  205 + arguments = "powrprof.dll, SetSuspendState 0,1,0";
  206 + break;
  207 + }
  208 + ProcessStartInfo startinfo = new ProcessStartInfo(filename, arguments);
  209 + Process.Start(startinfo);
  210 + }
  211 + public enum ShutDownMode { Sleep, Hibernation,Lock,Logoff,Restart,ShutDown,}
177 } 212 }
178 } 213 }
Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs 0 → 100644
@@ -0,0 +1,163 @@ @@ -0,0 +1,163 @@
  1 +using System;
  2 +using System.IO;
  3 +using System.Configuration.Install;
  4 +using System.Collections.Generic;
  5 +using System.Linq;
  6 +using System.ServiceProcess;
  7 +using System.Text;
  8 +using System.Threading;
  9 +using System.Threading.Tasks;
  10 +
  11 +using Microsoft.Web.Administration;
  12 +using System.Management;
  13 +using System.Diagnostics;
  14 +
  15 +using Vrh.Log4Pro.MaintenanceConsole.MenuNS;
  16 +using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS;
  17 +using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
  18 +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS;
  19 +using Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS;
  20 +
  21 +
  22 +using Vrh.XmlProcessing;
  23 +using System.Xml.Linq;
  24 +using System.Text.RegularExpressions;
  25 +
  26 +namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS
  27 +{
  28 + #region MaintenanceTools class
  29 + public static class InstallManager
  30 + {
  31 + private const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_INSTALLMANAGER;";
  32 + private const string XMLCONNECTIONSTRING_DEFAULT = "file=Config.Xml;element=InstallManager;";
  33 +
  34 + #region Execute
  35 + public static object Execute(object o1 = null, object o2 = null)
  36 + {
  37 + var args = (o1 as Menu.ExecutorParameter).Args;
  38 + string xmlcs = XMLCONNECTIONSTRING;
  39 + var config = new InstallManagerXmlParser(xmlcs, "", "hu-HU");
  40 +
  41 + var epWA = WebApplicationManager.GetExecutorParameter(args);
  42 +
  43 + var menufunctions = new Menu("Install Manager", "Select function!")
  44 + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.Functions.EnvironmentInstall.KEY, "Environment install", EnvironmentInstall, new Menu.ExecutorParameter(cfg: config, null)))
  45 + .AddMenuItem(new Menu.Item(CLP.Module.WebApplicationManager.Function.ConfigureIIS.KEY, "Configure IIS Default App Pool", WebApplicationManager.ConfigIIS, epWA))
  46 + .AddMenuItem(new Menu.ItemSeparator())
  47 + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.Functions.RestartServer.KEY, "Restart server", RestartServer, new Menu.ExecutorParameter(cfg: config, null)))
  48 + .SetSelectionMode(Menu.SelectionMode.Single);
  49 + menufunctions.ExecuteMenu();
  50 + return null;
  51 + }
  52 + #endregion Execute
  53 +
  54 + #region First level Executors with UI
  55 + #region EnvironmentInstall
  56 + private static object EnvironmentInstall(object parameter, object o)
  57 + {
  58 + var config = (parameter as Menu.ExecutorParameter).GetConfig<InstallManagerXmlParser>();
  59 + InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp;
  60 + InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os;
  61 + string answer;
  62 + foreach (var wfg in config.WindowsFeatureGroups)
  63 + {
  64 + grp = wfg.Group;
  65 + os = wfg.OS;
  66 + answer = ColorConsole.ReadLine($"Do You want to configure feature group '{grp}' for os '{os}'?(Y/N)", ConsoleColor.Yellow);
  67 + if (answer.ToUpper() == "Y") { EnableWindowsFeatures(grp, os, config); }
  68 + };
  69 + return o;
  70 + }
  71 + private static void EnableWindowsFeatures(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp
  72 + , InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os, InstallManagerXmlParser environmentinstallconfig)
  73 + {
  74 + ColorConsole.WriteLine($"Enableing {grp} features for os {os}...",ConsoleColor.Yellow);
  75 + foreach (var fn in environmentinstallconfig.GetFeatureList(os,grp))
  76 + {
  77 + if (string.IsNullOrWhiteSpace(fn) || fn.StartsWith("#")) { continue; }
  78 + ColorConsole.WriteLine($"Enableing {grp} features for os {os}. Feature name: {fn}.",ConsoleColor.Yellow);
  79 + string response;
  80 + switch (os)
  81 + {
  82 + case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016:
  83 + response = Tools.ExecuteAndGetStdIo("Install-WindowsFeature", $"-Name {fn} -IncludeAllSubFeature -IncludeManagementTools");
  84 + break;
  85 + case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.W7:
  86 + response = Tools.ExecuteAndGetStdIo("dism", $"/online /Enable-Feature /FeatureName:{fn}");
  87 + break;
  88 + default: break;
  89 + }
  90 + }
  91 + }
  92 + #endregion EnvironmentInstall
  93 + #region Restart server
  94 + private static object RestartServer(object parameter, object o)
  95 + {
  96 + var config = parameter as InstallManagerXmlParser;
  97 + string answer = ColorConsole.ReadLine($"Do You want to restart server?(Y/N)", ConsoleColor.Yellow);
  98 + if (answer.ToUpper() == "Y")
  99 + {
  100 + ColorConsole.WriteLine($"Restarting...", ConsoleColor.Yellow);
  101 + Tools.ShutDown(Tools.ShutDownMode.Restart);
  102 + }
  103 + return o;
  104 + }
  105 + #endregion Restart server
  106 +
  107 + #endregion First level Executors with UI
  108 + }
  109 + #endregion MaintenanceTools class
  110 +
  111 + #region InstallManagerXmlParser class
  112 + public class InstallManagerXmlParser: XmlParser
  113 + {
  114 + public InstallManagerXmlParser(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null)
  115 + {
  116 + WindowsFeatureGroups = new List<WindowsFeatures>();
  117 + foreach (var wfgXml in GetAllXElements(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall),nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList)))
  118 + {
  119 + try { WindowsFeatureGroups.Add(new WindowsFeatures(wfgXml)); }
  120 + catch { }
  121 + }
  122 + }
  123 + public class WindowsFeatures: XmlLinqBase
  124 + {
  125 + public WindowsFeatures(XElement wfgXml)
  126 + {
  127 + OS = GetValue(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS), wfgXml, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.DEFAULT);
  128 + Group = GetValue(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group), wfgXml, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.DEFAULT);
  129 + FeatureList = wfgXml.Value?.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList();
  130 + }
  131 + public InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values OS;
  132 + public InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values Group;
  133 + public List<string> FeatureList;
  134 + }
  135 + public List<WindowsFeatures> WindowsFeatureGroups;
  136 + public List<string> GetFeatureList(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values group) { return WindowsFeatureGroups?.FirstOrDefault(x => x.OS == os && x.Group == group)?.FeatureList; }
  137 + #region XmlStructure
  138 + public static class XmlStructure
  139 + {
  140 + public static class EnvironmentInstall
  141 + {
  142 + public static class WindowsFeatureList
  143 + {
  144 + public static class Attributes
  145 + {
  146 + public static class OS
  147 + {
  148 + public enum Values { WS2016, W7, }
  149 + public const Values DEFAULT = Values.WS2016;
  150 + }
  151 + public static class Group
  152 + {
  153 + public enum Values { ALL, IIS, MSMQ, DOTNET, }
  154 + public const Values DEFAULT = Values.IIS;
  155 + }
  156 + }
  157 + }
  158 + }
  159 + }
  160 + #endregion XmlStructure
  161 + }
  162 + #endregion InstallManagerXmlParser class
  163 +}
Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs 0 → 100644
@@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Messaging;
  5 +using System.Text;
  6 +using System.Threading.Tasks;
  7 +
  8 +namespace Vrh.Log4Pro.MaintenanceConsole
  9 +{
  10 + class Manager___MSMQManager
  11 + {
  12 + void CreateQueue()
  13 + {
  14 + string ccs = @"localhost\private$\ljskskin";
  15 + string msmqservername = "";
  16 + bool msmqprivate = true;
  17 + string msmqname = "";
  18 + string msmqFullname = msmqservername + "\\" + (msmqprivate ? "private$\\" : msmqname);
  19 + if (!MessageQueue.Exists(ccs)) { MessageQueue.Create(msmqFullname); }
  20 + }
  21 + void DeleteQueue()
  22 + {
  23 + string ccs = @"localhost\private$\ljskskin";
  24 + if (MessageQueue.Exists(ccs)) { MessageQueue.Delete(ccs); }
  25 + }
  26 + void Purge()
  27 + {
  28 + string ccs = @"localhost\private$\ljskskin";
  29 + var msmq = new MessageQueue(ccs);
  30 + msmq.Purge();
  31 + }
  32 + void Peek()
  33 + {
  34 + string ccs = @"localhost\private$\ljskskin";
  35 + var msmq = new MessageQueue(ccs);
  36 +
  37 + Message m = msmq.Peek(new TimeSpan(0));
  38 + m.BodyStream.Position = 0;
  39 + var sr = new System.IO.StreamReader(m.BodyStream);
  40 + var label = m.Label;
  41 + var body = sr.ReadToEnd().Replace(((char)0).ToString(), "");
  42 + }
  43 + void Read()
  44 + {
  45 + string ccs = @"localhost\private$\ljskskin";
  46 + var msmq = new MessageQueue(ccs);
  47 + var frmA = new System.Messaging.ActiveXMessageFormatter();
  48 + var frmB = new System.Messaging.BinaryMessageFormatter();
  49 + var frmX = new System.Messaging.XmlMessageFormatter();
  50 + msmq.Formatter = frmA;
  51 +
  52 + Message m = msmq.Receive(new TimeSpan(0));
  53 + m.BodyStream.Position = 0;
  54 +
  55 + Encoding enc = System.Text.Encoding.UTF8;
  56 + enc = System.Text.Encoding.UTF7;
  57 + enc = System.Text.Encoding.UTF32;
  58 + enc = System.Text.Encoding.Unicode;
  59 + enc = System.Text.Encoding.BigEndianUnicode;
  60 + enc = System.Text.Encoding.ASCII;
  61 + enc = System.Text.Encoding.Default;
  62 + var sr = new System.IO.StreamReader(m.BodyStream, enc);
  63 + var label = m.Label;
  64 + var body = sr.ReadToEnd().Replace(((char)0).ToString(), "");
  65 + }
  66 + void Send()
  67 + {
  68 + string ccs = @"localhost\private$\ljskskin";
  69 +
  70 + var frmA = new System.Messaging.ActiveXMessageFormatter();
  71 + var msmq = new MessageQueue(ccs);
  72 + msmq.Formatter = frmA;
  73 +
  74 + string messagetosend = "";
  75 + string messagelabel = "";
  76 +
  77 + Encoding enc = System.Text.Encoding.UTF8;
  78 + byte[] encodedmessage = enc.GetBytes(messagetosend);
  79 +
  80 + msmq.Send(encodedmessage, messagelabel);
  81 + }
  82 + }
  83 +}
Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs
@@ -15,6 +15,8 @@ using System.Diagnostics; @@ -15,6 +15,8 @@ using System.Diagnostics;
15 using Vrh.Log4Pro.MaintenanceConsole.MenuNS; 15 using Vrh.Log4Pro.MaintenanceConsole.MenuNS;
16 using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; 16 using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS;
17 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; 17 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
  18 +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS;
  19 +
18 20
19 using Vrh.XmlProcessing; 21 using Vrh.XmlProcessing;
20 using System.Xml.Linq; 22 using System.Xml.Linq;
@@ -37,8 +39,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS @@ -37,8 +39,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
37 39
38 var menufunctions = new Menu("Maintenance Tools", "Select function!") 40 var menufunctions = new Menu("Maintenance Tools", "Select function!")
39 .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)))
40 - .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool1.KEY, "Tool #1", Tool1, new Menu.ExecutorParameter(cfg: config, null)))  
41 - .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool2.KEY, "Tool #2", 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)))
42 .SetSelectionMode(Menu.SelectionMode.Single); 43 .SetSelectionMode(Menu.SelectionMode.Single);
43 menufunctions.ExecuteMenu(); 44 menufunctions.ExecuteMenu();
44 return null; 45 return null;
@@ -80,13 +81,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS @@ -80,13 +81,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
80 return o; 81 return o;
81 } 82 }
82 #endregion RegexTester 83 #endregion RegexTester
  84 +
83 #region Tool templates 85 #region Tool templates
84 - private static object Tool1(object parameter, object o)  
85 - {  
86 - var config = parameter as MaintenanceToolsXmlProcessor;  
87 - ColorConsole.ReadLine($"{nameof(Tool1)} is not ready yet...",ConsoleColor.Yellow);  
88 - return o;  
89 - }  
90 private static object Tool2(object parameter, object o) 86 private static object Tool2(object parameter, object o)
91 { 87 {
92 var config = parameter as MaintenanceToolsXmlProcessor; 88 var config = parameter as MaintenanceToolsXmlProcessor;
@@ -102,6 +98,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS @@ -102,6 +98,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
102 public class MaintenanceToolsXmlProcessor : XmlParser 98 public class MaintenanceToolsXmlProcessor : XmlParser
103 { 99 {
104 public XElement RegexpTesterConfig; 100 public XElement RegexpTesterConfig;
  101 +
105 #region constructor 102 #region constructor
106 public MaintenanceToolsXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) 103 public MaintenanceToolsXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null)
107 { 104 {
Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs
@@ -67,10 +67,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS @@ -67,10 +67,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
67 if (enabletabledatabackup) { SQLDataBaseManagerCore.BackupSqlData(sqld, timestamp); } 67 if (enabletabledatabackup) { SQLDataBaseManagerCore.BackupSqlData(sqld, timestamp); }
68 } 68 }
69 } 69 }
70 - #endregion Execute 70 + #endregion Execute
71 71
72 - #region First level Executors with UI  
73 - private static object CreateDataScripts(object parameter, object o) 72 + #region First level Executors with UI
  73 + private static object CreateDataScripts(object parameter, object o)
74 { 74 {
75 var config = (parameter as Menu.ExecutorParameter).GetConfig<SQLDataBaseManagerXmlProcessor>(); 75 var config = (parameter as Menu.ExecutorParameter).GetConfig<SQLDataBaseManagerXmlProcessor>();
76 var args = (parameter as Menu.ExecutorParameter).Args; 76 var args = (parameter as Menu.ExecutorParameter).Args;
@@ -937,7 +937,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS @@ -937,7 +937,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
937 #endregion BackupSqlData 937 #endregion BackupSqlData
938 #endregion private methods 938 #endregion private methods
939 } 939 }
940 - #endregion class SQLDataBaseManager 940 +#endregion class SQLDataBaseManager
941 941
942 #region SQLDataBaseManager class 942 #region SQLDataBaseManager class
943 public class SQLDataBaseManagerXmlProcessor : XmlParser 943 public class SQLDataBaseManagerXmlProcessor : XmlParser
Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs
@@ -13,6 +13,7 @@ using System.Diagnostics; @@ -13,6 +13,7 @@ using System.Diagnostics;
13 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; 13 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
14 using Vrh.Log4Pro.MaintenanceConsole.MenuNS; 14 using Vrh.Log4Pro.MaintenanceConsole.MenuNS;
15 using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; 15 using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS;
  16 +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS;
16 17
17 using Vrh.XmlProcessing; 18 using Vrh.XmlProcessing;
18 using VRH.Common; 19 using VRH.Common;
@@ -23,9 +24,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -23,9 +24,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
23 #region WebApplicationManager 24 #region WebApplicationManager
24 public static class WebApplicationManager 25 public static class WebApplicationManager
25 { 26 {
26 - private const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_WEBAPPLICATIONMANAGER;"; 27 + internal const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_WEBAPPLICATIONMANAGER;";
27 private const string XMLCONNECTIONSTRING_DEFAULT = "file=Config.Xml;element=WebApplications;"; 28 private const string XMLCONNECTIONSTRING_DEFAULT = "file=Config.Xml;element=WebApplications;";
28 29
  30 + public static Menu.ExecutorParameter GetExecutorParameter(string[] args)
  31 + {
  32 + var configWA = new WebApplicationManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU");
  33 + var epWA = new Menu.ExecutorParameter(configWA, args);
  34 + return epWA;
  35 + }
  36 +
29 #region public method: Execute 37 #region public method: Execute
30 public static object Execute(object o1=null,object o2=null) 38 public static object Execute(object o1=null,object o2=null)
31 { 39 {
@@ -286,6 +294,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -286,6 +294,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
286 ColorConsole.WriteLine($"{d.Xml_SiteName} {successstr}."); 294 ColorConsole.WriteLine($"{d.Xml_SiteName} {successstr}.");
287 } 295 }
288 } 296 }
  297 +
  298 + public static object ConfigIIS(object parameters, object o)
  299 + {
  300 + var config = (parameters as Menu.ExecutorParameter).GetConfig<WebApplicationManagerXmlProcessor>();
  301 + var args = (parameters as Menu.ExecutorParameter).Args;
  302 +
  303 + ColorConsole.WriteLine($"Configuring IIS default web application...",ConsoleColor.Yellow);
  304 + WebApplicationManagerCore.ConfigIIS();
  305 + return o;
  306 + }
289 private static object Register(object parameters, object o) 307 private static object Register(object parameters, object o)
290 { 308 {
291 var config = (parameters as Menu.ExecutorParameter).GetConfig<WebApplicationManagerXmlProcessor>(); 309 var config = (parameters as Menu.ExecutorParameter).GetConfig<WebApplicationManagerXmlProcessor>();
@@ -613,6 +631,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -613,6 +631,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
613 } 631 }
614 #endregion private method: CollectWebAppInfo 632 #endregion private method: CollectWebAppInfo
615 633
  634 + public static void ConfigIIS()
  635 + {
  636 + string response = Tools.ExecuteAndGetStdIo(@"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" ,@"/i");
  637 + using (ServerManager serverManager = new ServerManager())
  638 + {
  639 + ApplicationPool pool = serverManager.ApplicationPools["DefaultAppPool"];
  640 + pool.Enable32BitAppOnWin64 = true;
  641 + pool.ManagedRuntimeVersion = "v4.0";
  642 + CommitChanges(serverManager, pool.Name);
  643 + }
  644 + }
  645 +
616 #region private method:RegisterWebApplication 646 #region private method:RegisterWebApplication
617 public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode) 647 public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode)
618 { 648 {
Vrh.Log4Pro.MaintenanceConsole/Program.cs
@@ -21,6 +21,7 @@ using Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS; @@ -21,6 +21,7 @@ using Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS;
21 using Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS; 21 using Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS;
22 using Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS; 22 using Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS;
23 using Vrh.Log4Pro.MaintenanceConsole.UserManagerNS; 23 using Vrh.Log4Pro.MaintenanceConsole.UserManagerNS;
  24 +using Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS;
24 25
25 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; 26 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
26 27
@@ -66,6 +67,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole @@ -66,6 +67,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole
66 .AddMenuItem(new Menu.Item(CLP.Module.BackupPackageManager.KEY, "Backup Package Manager", BackupPackageManager.Execute, new Menu.ExecutorParameter(args: args))) 67 .AddMenuItem(new Menu.Item(CLP.Module.BackupPackageManager.KEY, "Backup Package Manager", BackupPackageManager.Execute, new Menu.ExecutorParameter(args: args)))
67 .AddMenuItem(new Menu.Item(CLP.Module.SQLDataBaseManager.KEY, "SQL Database Manager", SQLDataBaseManager.Execute, new Menu.ExecutorParameter(args: args))) 68 .AddMenuItem(new Menu.Item(CLP.Module.SQLDataBaseManager.KEY, "SQL Database Manager", SQLDataBaseManager.Execute, new Menu.ExecutorParameter(args: args)))
68 .AddMenuItem(new Menu.Item(CLP.Module.Log4ProUserManager.KEY, "Log4Pro User Manager", UserManager.Execute, new Menu.ExecutorParameter(args: args))) 69 .AddMenuItem(new Menu.Item(CLP.Module.Log4ProUserManager.KEY, "Log4Pro User Manager", UserManager.Execute, new Menu.ExecutorParameter(args: args)))
  70 + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.KEY, "Install Manager", InstallManager.Execute, new Menu.ExecutorParameter(args: args)))
69 .AddMenuItem(new Menu.ItemSeparator('-')) 71 .AddMenuItem(new Menu.ItemSeparator('-'))
70 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.KEY, "Maintenance tools", MaintenanceToolManager.Execute, new Menu.ExecutorParameter(args: args))) 72 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.KEY, "Maintenance tools", MaintenanceToolManager.Execute, new Menu.ExecutorParameter(args: args)))
71 .SetMenuHeaderDisplayer(DisplayComputerInfo) 73 .SetMenuHeaderDisplayer(DisplayComputerInfo)
Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj
@@ -216,6 +216,7 @@ @@ -216,6 +216,7 @@
216 <HintPath>..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath> 216 <HintPath>..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
217 </Reference> 217 </Reference>
218 <Reference Include="System.Management" /> 218 <Reference Include="System.Management" />
  219 + <Reference Include="System.Messaging" />
219 <Reference Include="System.Net.Http, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 220 <Reference Include="System.Net.Http, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
220 <HintPath>..\packages\System.Net.Http.4.1.0\lib\net46\System.Net.Http.dll</HintPath> 221 <HintPath>..\packages\System.Net.Http.4.1.0\lib\net46\System.Net.Http.dll</HintPath>
221 </Reference> 222 </Reference>
@@ -291,6 +292,8 @@ @@ -291,6 +292,8 @@
291 <Compile Include="ConsoleFunction - Tools - Membership.cs" /> 292 <Compile Include="ConsoleFunction - Tools - Membership.cs" />
292 <Compile Include="ConsoleFunction - Tools.cs" /> 293 <Compile Include="ConsoleFunction - Tools.cs" />
293 <Compile Include="Manager - BackupPackageManager.cs" /> 294 <Compile Include="Manager - BackupPackageManager.cs" />
  295 + <Compile Include="Manager - InstallManager.cs" />
  296 + <Compile Include="Manager - MSMQManager.cs" />
294 <Compile Include="Manager - UserManager.cs" /> 297 <Compile Include="Manager - UserManager.cs" />
295 <Compile Include="Manager - SQLDataBaseManager.cs" /> 298 <Compile Include="Manager - SQLDataBaseManager.cs" />
296 <Compile Include="Manager - ScheduledTaskManager.cs" /> 299 <Compile Include="Manager - ScheduledTaskManager.cs" />