protected override void ProcessRecord() { ManagementPackRuleCriteria criteria = new ManagementPackRuleCriteria(Filter); foreach (WorkflowSubscriptionBase ws in _mg.Subscription.GetSubscriptionsByCriteria(criteria)) { WriteObject(ws); } }
private void SetRuleStatus(bool bEnabled) { EnterpriseManagementGroup emg = new EnterpriseManagementGroup(txtManagementServer.Text); string strRuleCriteria = "Name LIKE 'NotificationSubscription%'"; ManagementPackRuleCriteria mprc = new ManagementPackRuleCriteria(strRuleCriteria); IList <ManagementPackRule> listRules = emg.Monitoring.GetRules(mprc); double dRulesCount = listRules.Count; double i = 0; pbProgress.Value = 0; pbProgress.Style = ProgressBarStyle.Continuous; pbProgress.Show(); //TODO: Undo this MP hackery. ManagementPack mp = null; foreach (ManagementPackRule rule in listRules) { i++; if (rule.Enabled != ManagementPackMonitoringLevel.@false && bEnabled == false) { rule.Enabled = ManagementPackMonitoringLevel.@false; rule.Status = ManagementPackElementStatus.PendingUpdate; //TODO: Undo this MP hackery. mp = rule.GetManagementPack(); } else if (rule.Enabled != ManagementPackMonitoringLevel.@true && bEnabled == true) { rule.Enabled = ManagementPackMonitoringLevel.@true; rule.Status = ManagementPackElementStatus.PendingUpdate; //TODO: Undo this MP hackery. mp = rule.GetManagementPack(); } double dProgress = i / (dRulesCount) * 100; pbProgress.Value = (int)dProgress; } pbProgress.Style = ProgressBarStyle.Marquee; lblStatus.Text = "Accepting changes to MP..."; mp.AcceptChanges(); pbProgress.Style = ProgressBarStyle.Continuous; pbProgress.Value = 100; lblStatus.Text = "Done!"; lblStatus.ForeColor = Color.Red; lblStatus.Height = lblStatus.Height * 3; return; }