diff --git a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs index d71561b..74504c8 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Menu.cs @@ -47,6 +47,13 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MenuNS #endregion private fields #region public properties + public int NumOfMenuItems + { + get + { + return MenuItemList?.Where(x => !x.Separator).Count()??0; + } + } public List MenuItemList { get; private set; } = new List(); List MenuItemKeyList { get { return MenuItemList.Where(x => !x.Separator).Select(x => x.Key).ToList(); } } #endregion public properties @@ -344,18 +351,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MenuNS ColorConsole.Write(" --> ", ConsoleColor.White); var remembercursorleft = ColorConsole.CursorLeft; var remembercursortop = ColorConsole.CursorTop; - if (selectionMode == SelectionMode.Multi) + if (NumOfMenuItems==0) { ColorConsole.WriteLine(); - ColorConsole.WriteLine("Multiple selections are separated with comma(,), enter asterisk(*) to select all!"); + ColorConsole.WriteLine("No items in menu!"); + selectionliststr = "EX"; } - var remembercursorleft2 = ColorConsole.CursorLeft; - var remembercursortop2 = ColorConsole.CursorTop; - ColorConsole.SetCursorPosition(remembercursorleft, remembercursortop); - selectionliststr = ColorConsole.ReadLine().ToUpper(); - if (selectionMode == SelectionMode.Multi) + else { - ColorConsole.SetCursorPosition(remembercursorleft2, remembercursortop2); + if (selectionMode == SelectionMode.Multi) + { + ColorConsole.WriteLine(); + ColorConsole.WriteLine("Multiple selections are separated with comma(,), enter asterisk(*) to select all!"); + } + var remembercursorleft2 = ColorConsole.CursorLeft; + var remembercursortop2 = ColorConsole.CursorTop; + ColorConsole.SetCursorPosition(remembercursorleft, remembercursortop); + selectionliststr = ColorConsole.ReadLine().ToUpper(); + if (selectionMode == SelectionMode.Multi) + { + ColorConsole.SetCursorPosition(remembercursorleft2, remembercursortop2); + } } } if (selectionliststr == "EX") diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs index c841ae5..063fa4d 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs @@ -95,19 +95,30 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS else if (sr.Result == Menu.SelectionResult.Error) { return o; } else if (sr.Result == Menu.SelectionResult.Ok) { } else { } - foreach (var p in sr.SelectedParameterList) + var startedsitelist = new List(); + var startedpoollist = new List(); + foreach (var wwa in sr.SelectedParameterList) { - WebApplication wa = p.Parameters as WebApplication; + WebApplication wa = wwa.Parameters as WebApplication; using (ServerManager sm = new ServerManager()) { - try { WebApplicationManagerCore.GetPool(sm, wa.Xml_PoolName)?.Stop(); } catch { ColorConsole.WriteLine($"Pool {wa.Xml_PoolName} already stopped."); } - try { WebApplicationManagerCore.GetSite(sm, wa.Xml_SiteName)?.Stop(); } catch { ColorConsole.WriteLine($"Site {wa.Xml_SiteName} already stopped."); } - - SiteStart(wa, o); - PoolStart(wa, o); - PoolRecycle(wa, o); - - ColorConsole.WriteLine($"Pool {wa.Xml_PoolName} and site {wa.Xml_SiteName} restarted."); + string message=""; + if (!startedsitelist.Contains(wa.Xml_SiteName)) + { + try { WebApplicationManagerCore.GetSite(sm, wa.Xml_SiteName)?.Stop(); } catch { ColorConsole.WriteLine($"Site {wa.Xml_SiteName} already stopped."); } + OneSiteStart(wa); + startedsitelist.Add(wa.Xml_SiteName); + message += $"Site {wa.Xml_SiteName} restarted."; + } + if (!startedpoollist.Contains(wa.Xml_PoolName)) + { + try { WebApplicationManagerCore.GetPool(sm, wa.Xml_PoolName)?.Stop(); } catch { ColorConsole.WriteLine($"Pool {wa.Xml_PoolName} already stopped."); } + OnePoolStart(wa); + OnePoolRecycle(wa); + startedpoollist.Add(wa.Xml_PoolName); + message += (message==""?"":" ") + $"Pool {wa.Xml_PoolName} restarted."; + } + if (!string.IsNullOrWhiteSpace(message)) { ColorConsole.WriteLine(message); } } } return o; diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs index a5d72d3..7532fd6 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - WindowsServiceManager.cs @@ -73,7 +73,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS var menuservices = new Menu("Windows services", "Select the windows service(es) to delete (max 10 in one run)!") .SetSelectionMode(Menu.SelectionMode.Multi); - for (var i = 0; i < sl.Length; i++) { menuservices.AddMenuItem(new Menu.Item(null, $"{sl[i].ServiceName} ({sl[i].DisplayName})", null, new Menu.ExecutorParameter(pars: sl[i].ServiceName))); @@ -224,7 +223,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WindowsServiceManagerNS var args = (parameter as Menu.ExecutorParameter).Args; var selectedserviceindexes = CommandLine.GetCommandLineArgument(args, CLP.Module.WindowsServiceManager.Function.CMD_SERVICES); - var menuservices = DisplayWindowsServiceMenu(config, $"Select the windows service(es) to manage with function '{nameof(Kill)}'!", silent: true); + var menuservices = DisplayWindowsServiceMenu(config, $"Select the windows service(es) to manage with function '{nameof(Stop)}'!", silent: true); Menu.Selection sr = menuservices.Select(selectedserviceindexes); if (sr.Result == Menu.SelectionResult.Exit) { return o; } diff --git a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs index 14e5da9..d20bc7b 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.6.0.0")] -[assembly: AssemblyFileVersion("1.6.0.0")] +[assembly: AssemblyVersion("1.6.2.0")] +[assembly: AssemblyFileVersion("1.6.2.0")] -- libgit2 0.21.2