private void OnMaintenanceModeEnd(object sender, CommandEventArgs e)
 {
     ConsoleJobs.RunJob(this, (param0, param1) =>
     {
         IEnumerable <InstanceState> monitoringObjects = GridSelectedItems.Where(si => si.InMaintenanceMode);
         if (!monitoringObjects.Any())
         {
             return;
         }
         using (MaintenanceModeExitDialog maintenanceModeExitDialog = new MaintenanceModeExitDialog())
         {
             if (maintenanceModeExitDialog.ShowDialog() != DialogResult.Yes)
             {
                 return;
             }
             foreach (InstanceState monitoringObject in monitoringObjects)
             {
                 monitoringObject.GetPartialMonitoringObject(ManagementGroup).StopMaintenanceMode(DateTime.UtcNow, maintenanceModeExitDialog.ApplyToContained ? TraversalDepth.Recursive : TraversalDepth.OneLevel);
             }
             UpdateCache();
         }
     });
 }
 private void OnMaintenanceModeStart(object sender, CommandEventArgs e)
 {
     ConsoleJobs.RunJob(this, (param0, param1) =>
     {
         IEnumerable <InstanceState> monitoringObjects = GridSelectedItems.Where(i => !i.InMaintenanceMode);
         if (!monitoringObjects.Any())
         {
             return;
         }
         using (MaintenanceModeDialog maintenanceModeDialog = new MaintenanceModeDialog())
         {
             Site.Container.Add(maintenanceModeDialog);
             foreach (InstanceState monitoringObject in monitoringObjects)
             {
                 maintenanceModeDialog.EntityItems.Add(monitoringObject.GetPartialMonitoringObject(ManagementGroup));
             }
             if (maintenanceModeDialog.ShowDialog() != DialogResult.OK)
             {
                 return;
             }
             UpdateCache(UpdateReason.Refresh);
         }
     });
 }