using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using Microsoft.Web.Administration; using System.Management; using System.Diagnostics; using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; using Vrh.Log4Pro.MaintenanceConsole.MenuNS; using Vrh.Log4Pro.MaintenanceConsole.ToolsNS; using Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS; using Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS; using Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS; using Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS; using Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS; using Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS; using Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS; using Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS; using Vrh.Log4Pro.MaintenanceConsole.UserManagerNS; using Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS; using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; using Vrh.XmlProcessing; using VRH.Common; using System.Xml.Linq; using System.Reflection; namespace Vrh.Log4Pro.MaintenanceConsole { class Program { static void Main(string[] args) { //Tests.T3(); //return; var startassystemstr = CommandLine.GetCommandLineArgument(args, CLP.CMD_STARTASSYSTEM); var startassystem = startassystemstr!=null && startassystemstr.ToLower() == "yes"; OtherTools.StartAsAdmin(); OtherTools.StartAsSystem(silent:startassystem); var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE); var commandmode = !string.IsNullOrEmpty(forcedmodulekey); var silentmode = commandmode && !string.IsNullOrEmpty(CommandLine.GetCommandLineArgument(args, CLP.CMD_SILENT, switchtype: true)); ColorConsole.SilentMode=silentmode; Menu.SetCommandMode(commandmode); var appconfigpath = CommandLine.GetCommandLineArgument(args, CLP.CMD_APPCONFIG); CommandLine.SetAppConfigFile(appconfigpath); try { ColorConsole.SetWindowSize(120, 64); } catch { ColorConsole.WriteLine("Change the size of the console fonts smaller!"); ColorConsole.ReadKey(); return; } if (!Tools.IsElevated) { ColorConsole.WriteLine("Run as administartor!"); ColorConsole.ReadKey(); return; } var mm = new Menu("Log4ProIS Maintenance Console") .AddMenuItem(new Menu.Item(CLP.Module.WebApplicationManager.KEY, "Web Application Manager", WebApplicationManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.WindowsServiceManager.KEY, "Windows Service Manager", WindowsServiceManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.FileCleanerManager.KEY, "File Cleaner Manager", FileCleanerManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.ScheduledTaskManager.KEY, "Scheduled Task Manager", ScheduledTaskManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.MSMQManager.KEY, "MS MessageQueue (MSMQ) Manager", MSMQManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.BackupPackageManager.KEY, "Backup Package Manager", BackupPackageManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.SQLDataBaseManager.KEY, "SQL Database Manager", SQLDataBaseManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.Log4ProUserManager.KEY, "Log4Pro User Manager", UserManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.KEY, "Install Manager", InstallManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.ItemSeparator('-')) .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.KEY, "Maintenance tools", MaintenanceToolManager.Execute, new Menu.ExecutorParameter(args: args))) .SetMenuHeaderDisplayer(ComputerInfo.DisplayThis) .SetSelectionMode(Menu.SelectionMode.Single); mm.ExecuteMenu(forcedmodulekey); ColorConsole.PressAnykeyToContinue(); } } #region MaintenanceConsoleXmlProcessor class public class MaintenanceConsoleXmlProcessor : XmlParser { public string Xml_Header; #region constructor public MaintenanceConsoleXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) { Xml_Header = GetValue(GetXElement(nameof(XmlStructure.Header)),""); } #endregion constructor #region XmlStructure public static class XmlStructure { public static class Header { } } #endregion XmlStructure } #endregion MaintenanceConsoleXmlProcessor class }