From 17723d0c57625f96b018f7cb4d8c48dda43ceb6c Mon Sep 17 00:00:00 2001 From: Schwirg László Date: Tue, 1 Aug 2023 12:22:37 +0200 Subject: [PATCH] v1.19.2.0 --- Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs | 6 +++--- Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs | 4 ++-- Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs | 2 +- Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs | 14 +++++++------- Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs | 8 ++++---- Vrh.Log4Pro.MaintenanceConsole/Manager - UserManager.cs | 16 ++++++++-------- Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs | 20 ++++++++++---------- Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs | 25 +++++++++++++------------ Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs | 4 ++-- Vrh.Log4Pro.MaintenanceConsole/Tools.cs | 2 +- 10 files changed, 51 insertions(+), 50 deletions(-) diff --git a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs index 9a741c6..3917800 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs @@ -338,11 +338,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MenuNS /// /// /// - public Selection Select(string forcedselectionkeylist=null) + public Selection Select(string forcedselectionkeylist=null, bool forcedcommandmode=false) { string selectionliststr; var result = new Selection(); - if (Menu.IsCommandMode()) + if (Menu.IsCommandMode() || forcedcommandmode) { selectionliststr = forcedselectionkeylist??"EX"; } @@ -360,7 +360,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MenuNS selectionliststr = ColorConsole.ReadLine().ToUpper(); } } - if (selectionliststr == "EX") + if (selectionliststr.ToUpper() == "EX") { result.Result = SelectionResult.Exit; result.SelectedKeyList = null; diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs index 70dceef..8d8c0c7 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs @@ -60,7 +60,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS var selectedos = GetOsCode();if (selectedos == null) { return o; } string featurename = ColorConsole.ReadLine($"Enter Windows feature name!", ConsoleColor.Green,required:true); - if (featurename.ToLower() == "ex") { return o; } + if (featurename.ToUpper() == "EX") { return o; } foreach (var wfg in config.WindowsFeatureGroups.Where(x => selectedos == null || x.OS == selectedos)) { @@ -119,7 +119,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS : ""; var oslist = Enum.GetNames(typeof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values)).ToList(); string answer = ColorConsole.ReadLine($"Enter os code (friendly name is: '{osfrn}')!", ConsoleColor.Green, validitylist: oslist, defaultvalue: defaultvalue.ToString(), required: true); - if (answer.ToLower() == "ex") { return null; } + if (answer.ToUpper() == "EX") { return null; } InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values? selectedos = null; selectedos = (InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values)Enum .Parse(typeof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values), answer); diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs index c678655..6515249 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs @@ -212,7 +212,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS while (true) { sn = ColorConsole.ReadLine("Enter server ip/name to get queue info from (enter . for localhost)", defaultvalue: sndefault); - if (sn.ToLower() == "ex") { return o; } + if (sn.ToUpper() == "EX") { return o; } sndefault = sn; List queuearray = new List(); diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs index ffdf258..68e1b7d 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs @@ -86,9 +86,9 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS while(true) { var regexstr = ColorConsole.ReadLine($"Enter REGEX to test with:", ConsoleColor.Yellow); - if (regexstr == "EX") { break; } + if (regexstr.ToUpper() == "EX") { break; } var teststr = ColorConsole.ReadLine($"Enter STRING to test:", ConsoleColor.Yellow); - if (teststr == "EX") { break; } + if (teststr.ToUpper() == "EX") { break; } var rgx = new Regex(regexstr, RegexOptions.None); var regexmatch = rgx.Match(teststr); @@ -136,7 +136,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS } var command = firstrun ? "STARTANDSHOW *" : ColorConsole.ReadLine(); - if (command == "EX") { break; } + if (command.ToUpper() == "EX") { break; } if (command == "") { continue; } var cmdarray = command.Split(' '); if (cmdarray.Length!=2) { ColorConsole.WriteLine($"Incorrect answer!", ConsoleColor.Red); continue; } @@ -387,7 +387,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS if (success) { selectedcommand.Execute(); }//végrehajtja a parancsot } string successmsg = success ? "succeeded" : "failed"; string answer = ColorConsole.ReadLine($"{nameof(AseConfig)} command execution {successmsg} on {currentip}!\nEnter EX to exit from execution loop, anything else to continue!", success?ConsoleColor.Yellow: ConsoleColor.Red); - if (answer.ToLower() == "ex") break; + if (answer.ToUpper() == "EX") break; } return o; } @@ -405,7 +405,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS ColorConsole.WriteLine(onelineinfo.Item3, ConsoleColor.Gray); } var answer = ColorConsole.ReadLine($"Select command key", ConsoleColor.Gray, bracket: "[]",validitylist: aseconfigcommandList.Select(c => c.Key).ToList()); - if (answer.ToLower() == "ex") return null; + if (answer.ToUpper() == "EX") return null; return answer; } private class ASEConfigCommand @@ -599,8 +599,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS ColorConsole.WriteLine(prompttext,ConsoleColor.Yellow); ColorConsole.WriteLine($"Enter NONE (or nothing) for no value!", ConsoleColor.Gray); value = ColorConsole.ReadLine(); - value = value.ToLower() == "ex" ? null - : value.ToLower() == "none" ? "<None>" + value = value.ToUpper() == "EX" ? null + : value.ToUpper() == "NONE" ? "<None>" : value == "" ? "<None>" : value; return value; diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs index b5ad19c..04c9de1 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs @@ -257,7 +257,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS } var scriptkey = ColorConsole.ReadLine("Select the script! [empty]=next DB, [*]=all, [EX]=exit.", ConsoleColor.Yellow, prefix:" ", suffix: " --> ", validitylist: vlist); if (string.IsNullOrWhiteSpace(scriptkey)) { continue; } - if (scriptkey.ToLower()=="ex") { return o; } + if (scriptkey.ToUpper() == "EX") { return o; } SQLDataBase.SQLScript ss = sqld.Xml_SQLScriptList.FirstOrDefault(s=>s.Key==scriptkey); if (!Tools.ResolveArguments(ss.ArgumentParameters, ss.ScriptText,out string ssScriptText)) { return o; } ColorConsole.WriteLine(ssScriptText); @@ -296,7 +296,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS ColorConsole.WriteLine(prefix: " ", text: "TruncateOnly", bracket: "[]", suffix: $": does not compact the data, but removes free space from the DB. Use togethere with FreeSpacePercent.", f: ConsoleColor.Yellow); ColorConsole.WriteLine(prefix: " ", text: "FreeSpacePercent", bracket: "[]", suffix: $": an integer number between 0-100,default=10; indicates the percentage of free space in the shrinked DB.", f: ConsoleColor.Yellow); var shrinkoptions = ColorConsole.ReadLine($"EX=exit.", ConsoleColor.Yellow, suffix: " --> "); - if (shrinkoptions == "EX") { continue; } + if (shrinkoptions.ToUpper() == "EX") { continue; } else if (string.IsNullOrWhiteSpace(shrinkoptions)) { shrinkoptions = "Default,10"; } string option, fsp = null; int fspint = 10; @@ -334,13 +334,13 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS try { var restoredbname = ColorConsole.ReadLine($"Enter the name of the DB to copy '{sqld.DBName}' to. Empty={sqld.DBName}. EX=exit.", ConsoleColor.Yellow, suffix: " --> "); - if (restoredbname == "EX") { continue; } + if (restoredbname.ToUpper() == "EX") { continue; } else if (string.IsNullOrWhiteSpace(restoredbname)) { restoredbname = sqld.DBName; } ColorConsole.WriteLine("Enter the path for the DB physical files.", ConsoleColor.Yellow); ColorConsole.WriteLine(sqld.PhysicalFilesDirectoryPath, ConsoleColor.Yellow, prefix: $" Empty=current location of source DB: ", bracket: "[]"); ColorConsole.WriteLine(SQLDataBaseManagerCore.GetServerDefaultPhysicalDATFileLocation(sqld.SQLCS), ConsoleColor.Yellow,prefix: $" DEFAULT= sql server default location.",bracket:"[]"); var targetdirectory = ColorConsole.ReadLine($"Enter the target path.EX=exit.", ConsoleColor.Yellow, suffix: " --> "); - if (targetdirectory == "EX") { continue; } + if (targetdirectory.ToUpper() == "EX") { continue; } else if (targetdirectory == "DEFAULT") { targetdirectory = null; ; } else if (string.IsNullOrWhiteSpace(targetdirectory)) { targetdirectory = sqld.PhysicalFilesDirectoryPath; } diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - UserManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - UserManager.cs index 385cfa2..3bb4c03 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - UserManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - UserManager.cs @@ -80,9 +80,9 @@ namespace Vrh.Log4Pro.MaintenanceConsole.UserManagerNS var initactionblocknamelist = string.Join(",", config.InitActionBlockList.Select(iab => iab.Name).ToArray()); ColorConsole.WriteLine($"Select one init action block from this list: {initactionblocknamelist}", ConsoleColor.Yellow); var iabname = ColorConsole.ReadLine($"Enter init action block name:", ConsoleColor.Yellow).ToLower(); - if (iabname == "EX") { return null; } + if (iabname.ToUpper() == "EX") { return null; } var stepbystep = ColorConsole.ReadLine($"Do You want to execute step-by-step (true/false/yes/no/?:", ConsoleColor.Yellow).ToLower().Replace("yes","true")==bool.TrueString.ToLower(); - if (iabname == "EX") { return null; } + if (iabname.ToUpper() == "EX") { return null; } try { var iab = config.InitActionBlockList.FirstOrDefault(_iab => _iab.Name.ToLower() == iabname); @@ -92,7 +92,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.UserManagerNS if (stepbystep) { ColorConsole.WriteLine($"Action:{cr.Type}, role names: {cr.Roles}.", ConsoleColor.Yellow); - var sel = ColorConsole.ReadLine($"Press enter to continue.", ConsoleColor.Gray); if (sel.ToLower() == "ex") return o; + var sel = ColorConsole.ReadLine($"Press enter to continue.", ConsoleColor.Gray); if (sel.ToUpper() == "EX") return o; } foreach (var rn in cr.RoleArray) { try { MembershipTools.Roles.Create(rn); } catch (Exception ex) { ColorConsole.WriteLine(ex.Message, ConsoleColor.Red); }; } } @@ -101,7 +101,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.UserManagerNS if (stepbystep) { ColorConsole.WriteLine($"Action:{cr.Type}, rolegroup name: {cr.Name}, roles: {cr.Roles}.", ConsoleColor.Yellow); - var sel = ColorConsole.ReadLine($"Press enter to continue.", ConsoleColor.Gray); if (sel.ToLower() == "ex") return o; + var sel = ColorConsole.ReadLine($"Press enter to continue.", ConsoleColor.Gray); if (sel.ToUpper() == "EX") return o; } try { @@ -116,7 +116,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.UserManagerNS { var crtext = cr.Superuser ? $"superuser" : $"rolegroups: {cr.RoleGroups}, roles: {cr.Roles}"; ColorConsole.WriteLine($"Action:{cr.Type}, username: {cr.Name}[{cr.Password}], {crtext}.", ConsoleColor.Yellow); - var sel = ColorConsole.ReadLine($"Press enter to continue.", ConsoleColor.Gray); if (sel.ToLower() == "ex") return o; + var sel = ColorConsole.ReadLine($"Press enter to continue.", ConsoleColor.Gray); if (sel.ToUpper() == "EX") return o; } try { @@ -135,9 +135,9 @@ namespace Vrh.Log4Pro.MaintenanceConsole.UserManagerNS { var config = (parameter as Menu.ExecutorParameter).GetConfig(); var suname = ColorConsole.ReadLine($"Enter Superuser name:", ConsoleColor.Yellow); - if (suname == "EX") { return null; } + if (suname.ToUpper() == "EX") { return null; } var supsw = ColorConsole.ReadLine($"Enter Superuser password:", ConsoleColor.Yellow); - if (supsw == "EX") { return null; } + if (supsw.ToUpper() == "EX") { return null; } try { @@ -166,7 +166,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.UserManagerNS { var config = (parameter as Menu.ExecutorParameter).GetConfig(); var uname = ColorConsole.ReadLine($"Enter username:", ConsoleColor.Yellow); - if (uname == "EX") { return null; } + if (uname.ToUpper() == "EX") { return null; } try { diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs index 50a56a9..582f5cd 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs @@ -119,7 +119,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS urlname = ColorConsole.ReadLine(); } else { urlname = "*"; } - if (urlname.ToLower() == "ex") return o; + if (urlname.ToUpper() == "EX") return o; if (string.IsNullOrWhiteSpace(urlname)) goto getsendurlnameurlinputcycle; string urltext; @@ -132,12 +132,12 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS ColorConsole.WriteLine("Enter url to send:", ConsoleColor.Yellow); ColorConsole.WriteLine("Sample (Enter 'Sample' to use this):", ConsoleColor.Gray, suffix: TESTURL); urltext = ColorConsole.ReadLine(); - if (urltext.ToLower() == "ex") return o; + if (urltext.ToUpper() == "EX") return o; if (urltext.ToLower() == "sample") urltext = TESTURL; if (string.IsNullOrWhiteSpace(urltext)) goto getsendurlnameurlinputcycle; ColorConsole.WriteLine("Enter request type (GET/POST):", ConsoleColor.Yellow); string gpstr = ColorConsole.ReadLine(); - if (gpstr.ToLower() == "ex") return o; + if (gpstr.ToUpper() == "EX") return o; gp = HttpTools.RequestType.GET; if (string.IsNullOrWhiteSpace(gpstr)) goto getsendurlnameurlinputcycle; else if (gpstr.ToUpper() == nameof(HttpTools.RequestType.GET)) { gp = HttpTools.RequestType.GET; } @@ -145,7 +145,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS ColorConsole.WriteLine("Enter timeout (0 for default):", ConsoleColor.Yellow); string tostring = ColorConsole.ReadLine(); - if (tostring.ToLower() == "ex") return o; + if (tostring.ToUpper() == "EX") return o; to = 0; if (string.IsNullOrWhiteSpace(tostring)) goto getsendurlnameurlinputcycle; else if (!int.TryParse(tostring,out to)) { } @@ -464,7 +464,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS { var wa = p.Parameters as WebApplication; GetImpersonateInfo(wa, out string username, out string password, out string impersonate); - if (username == "EX" || password == "EX" || impersonate == "EX") { return o; } + if (username.ToUpper() == "EX" || password.ToUpper() == "EX" || impersonate.ToUpper() == "EX") { return o; } string olduserinfo = WebApplicationManagerCore.GetCurrentImpersonateIdentityInfo(wa); WebApplicationManagerCore.SetImpersonateIdentity(wa.Xml_ImpersonateIdentityConfigFile, impersonate, username, password); ColorConsole.WriteLine($"Impersonate identity changed for webapp {wa.Xml_AppName}."); @@ -491,7 +491,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS ColorConsole.WriteLine($"Set impersonate-on status (true/false).[Enter]=finish input.EX=exit"); ColorConsole.WriteLine($"Empty in XML={defaultinxml}"); impersonate = ColorConsole.ReadLine().ToUpper(); - if (impersonate == "EX") { return; } + if (impersonate.ToUpper() == "EX") { return; } else if (impersonate == "") { username = wa.Xml_ImpersonateIdentityUsername; @@ -510,13 +510,13 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS ColorConsole.WriteLine($"Enter username.[Enter]=finish input.EX=exit"); if (wa.Xml_ImpersonateIdentity) { ColorConsole.WriteLine(defaultinxml); } username = ColorConsole.ReadLine().ToUpper(); - if (username == "EX") { return; } + if (username.ToUpper() == "EX") { return; } else if (wa.Xml_ImpersonateIdentity && username == "") { } ColorConsole.WriteLine($"Enter password.[Enter]=finish input.Empty=no password.EX=exit"); password = ColorConsole.ReadLine().ToUpper(); - if (password == "EX") { return; } + if (password.ToUpper() == "EX") { return; } break; //bool valid = System.Web.ApplicationSerices.AuthenticationService.ValidateUser(username, password, mull); } @@ -546,7 +546,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS var wa = p.Parameters as WebApplication; ColorConsole.WriteLine($"Set pool identity info for webapp {wa.Xml_AppName}. Pool:{wa.Xml_PoolName}, site:{wa.Xml_SiteName}", ConsoleColor.DarkYellow); GetPoolIdentityInfo(wa, out string username, out string password, out ProcessModelIdentityType poolidentitytype); - if (username == "EX" || password == "EX") { return o; } + if (username.ToUpper() == "EX" || password.ToUpper() == "EX") { return o; } string olduserinfo = WebApplicationManagerCore.GetCurrentPoolIdentityInfo(wa); WebApplicationManagerCore.SetPoolUserAccount(wa.Xml_AppName, wa.Xml_SiteName, username, password, poolidentitytype); ColorConsole.WriteLine($"Pool identity changed for webapp {wa.Xml_AppName}."); @@ -577,7 +577,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS username = ColorConsole.ReadLine().ToUpper(); password = ""; poolidentitytype = ProcessModelIdentityType.SpecificUser; - if (username == "EX") { return; } + if (username.ToUpper() == "EX") { return; } if (string.IsNullOrEmpty(username)) { username=wa.Xml_PoolUsername; password = wa.Xml_PoolPassword; } diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs index 886d676..c59a36a 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs @@ -35,7 +35,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS { var args = (o1 as Menu.ExecutorParameter).Args; var config = new WindowsServiceManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); - var selectedserviceindexes = CommandLine.GetCommandLineArgument(args, CLP.Module.WindowsServiceManager.Function.CMD_SERVICES); + var selectedservicekeys = CommandLine.GetCommandLineArgument(args, CLP.Module.WindowsServiceManager.Function.CMD_SERVICES); var functionkey = CommandLine.GetCommandLineArgument(args, CLP.CMD_FUNCTION); bool exitwasrequested = false; while (true) // servicegroup selection @@ -56,7 +56,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS menuservicegroups.DisplayTitle(); menuservicegroups.DisplayItems(1); - Menu.Selection srg = menuservicegroups.Select(selectedserviceindexes); + Menu.Selection srg = menuservicegroups.Select(selectedservicekeys); if (srg.Result == Menu.SelectionResult.Exit) { break; } else if (srg.Result == Menu.SelectionResult.None) { break; } else if (srg.Result == Menu.SelectionResult.Error) { break; } @@ -74,13 +74,14 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS var menuservices = DisplayWindowsServiceMenu(config, $"Select the windows service(es) to manage!", selectedServicegroups); //menuservices.DisplayTitle(); menuservices.DisplayItems(1, listheader: selectedServicegroups == null ? null : "Services for groups: " + string.Join(",", selectedServicegroups.GetOneLineInfoList())); - Menu.Selection sr = menuservices.Select(selectedserviceindexes); + Menu.Selection sr = menuservices.Select(selectedservicekeys); if (sr.Result == Menu.SelectionResult.Exit) { exitwasrequested = true; break; } else if (sr.Result == Menu.SelectionResult.None) { break; } else if (sr.Result == Menu.SelectionResult.Error) { break; } else if (sr.Result == Menu.SelectionResult.Ok) { } else { } selectedServices = sr.SelectedParameterList.Select(p => (p.Parameters as WindowsService)).ToList(); + var selectedkeylist = sr.SelectedKeyList; var menufunctions = new Menu("Manage Windows Services", "Select the management function!") .AddMenuItem(new Menu.Item(CLP.Module.WindowsServiceManager.Function.Register.KEY, "Register")) @@ -159,7 +160,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS catch (Exception ex) { ColorConsole.WriteLine(ex.Message, ConsoleColor.Red); } } break; - break; case CLP.Module.WindowsServiceManager.Function.Kill.KEY: foreach (var ws in selectedServices) { @@ -171,7 +171,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS catch (Exception ex) { ColorConsole.WriteLine(ex.Message, ConsoleColor.Red); } } break; - case CLP.Module.WindowsServiceManager.Function.SetUserAccount.KEY: SetUserAccount(config, selectedserviceindexes); break; + case CLP.Module.WindowsServiceManager.Function.SetUserAccount.KEY: SetUserAccount(config, string.Join(",",selectedkeylist),forcecommandmode:true); break; case CLP.Module.WindowsServiceManager.Function.Purge.KEY: Purge(); break; } } @@ -188,7 +188,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS ColorConsole.WriteLine($"Enter servicename mask to select from the result list (% and ? are wildchars)...", ConsoleColor.Yellow); ColorConsole.WriteLine($"...or enter service name directly (put an asterisk (*) before the name).", ConsoleColor.Yellow); var mask = ColorConsole.ReadLine($" ---> ", ConsoleColor.Yellow).ToUpper(); - if (mask == "EX") { return; } + if (mask.ToUpper() == "EX") { return; } else if (mask == "") { continue; } if (mask.StartsWith("*") && mask.Length>=2) { DeleteOneService(mask.Substring(1)); } @@ -225,7 +225,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS ColorConsole.Write(servicename, ConsoleColor.White, bracket: "''"); ColorConsole.Write($"!", ConsoleColor.Yellow); var confirmation = ColorConsole.ReadLine(prefix: " ---> ").ToUpper(); - if (confirmation == "EX") { return true; } + if (confirmation.ToUpper() == "EX") { return true; } else if (confirmation == "") { ColorConsole.WriteLine($"Service '{servicename}' NOT deleted!", ConsoleColor.Green); @@ -237,11 +237,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS } return false; } - private static void SetUserAccount(WindowsServiceManagerXmlProcessor config, string selectedserviceindexes) + private static void SetUserAccount(WindowsServiceManagerXmlProcessor config, string selectedservicekeys, bool forcecommandmode=false) { var menuservices = DisplayWindowsServiceMenu(config, $"Select the windows service(es) to manage with function '{nameof(SetUserAccount)}'!"); - Menu.Selection sr = menuservices.Select(selectedserviceindexes); + Menu.Selection sr = menuservices.Select(selectedservicekeys,forcecommandmode); if (sr.Result == Menu.SelectionResult.Exit) { return; } else if (sr.Result == Menu.SelectionResult.None) { return; } else if (sr.Result == Menu.SelectionResult.Error) { return; } @@ -259,7 +259,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS if (username == null) { GetUsernameAndPassword(wmiService,ws,out username, out password); - if (username == "EX" || password == "EX") { return; } + if (username.ToUpper() == "EX" || password.ToUpper() == "EX") { return; } } if (WindowsServiceManagerCore.SetUserAccount(wmiService, username, password)) { ColorConsole.WriteLine($"Service user account changed. Name:{ws.Name}", ConsoleColor.Green); } else { ColorConsole.WriteLine($"Service user account change FAILED! Name:{ws.Name}", ConsoleColor.Red); } @@ -373,6 +373,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS if (Menu.IsCommandMode()) { username = ws.Xml_Username; password = ws.Xml_Password; return; } string olduserinfo = WindowsServiceManagerCore.GetUserInfo(wmiService); + ColorConsole.WriteLine($"Service: {ws.Name}({ws.DisplayName},{ws.Description})",f:ConsoleColor.Yellow); ColorConsole.WriteLine($"Current user info: {olduserinfo}"); ColorConsole.WriteLine("Enter username then password. [Enter]=save.EX=exit"); ColorConsole.WriteLine("Username is in the form of 'domainname\\username'"); @@ -387,7 +388,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS ColorConsole.WriteLine($"EX", ConsoleColor.Red, bracket: "()", prefix: " ", suffix: " Exit"); username = ColorConsole.ReadLine("username -->", ConsoleColor.Yellow, bracket: "[]"); - if (username == "EX") { return; } + if (username.ToUpper() == "EX") { return; } else if (string.IsNullOrEmpty(username)) { username = ws.Xml_Username; password = ws.Xml_Password; } else if (username.ToUpper() == "LSE" || username == nameof(ServiceAccount.LocalService)) { username = nameof(ServiceAccount.LocalService); } else if (username.ToUpper() == "LSY" || username == nameof(ServiceAccount.LocalSystem)) { username = nameof(ServiceAccount.LocalSystem); } @@ -395,7 +396,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS else { password = ColorConsole.ReadLine("password -->", ConsoleColor.Yellow, bracket: "[]"); - if (password == "EX") { return; } + if (password.ToUpper() == "EX") { return; } } } #endregion private GetUsernameAndPassword diff --git a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs index cbfc753..5bcdd71 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.19.1.0")] -[assembly: AssemblyFileVersion("1.19.1.0")] +[assembly: AssemblyVersion("1.19.2.0")] +[assembly: AssemblyFileVersion("1.19.2.0")] diff --git a/Vrh.Log4Pro.MaintenanceConsole/Tools.cs b/Vrh.Log4Pro.MaintenanceConsole/Tools.cs index f52a71d..0664cb7 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Tools.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Tools.cs @@ -333,7 +333,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS if (kvp.Value.Substring(1).IndexOf('?') != -1) kvpdefaultvalue = kvp.Value.Substring(1).Split(new char[] { '?' }, StringSplitOptions.RemoveEmptyEntries)[1]; } string value = ColorConsole.ReadLine(prompt, ConsoleColor.Yellow, defaultvalue: kvpdefaultvalue); - if (value.ToLower() == "ex") { return false; } + if (value.ToUpper() == "EX") { return false; } resolveddictionary.Add(kvp.Key, value); } else if (kvp.Value.StartsWith("?") && !interactive) resolveddictionary.Add(kvp.Key, $"{{{kvp.Key}}}"); -- libgit2 0.21.2