Commit 0cafa26d5985df8890d868ea1f77a50a885b351e
1 parent
2ff9a39c
InstallManager létrehozása és alap funkciók hozzáadása
Showing
10 changed files
with
339 additions
and
16 deletions
Show diff stats
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" /> |