private SupervisionTransportRule LoadRule(string ruleName, ADObjectId supervisionTransportRuleCollectionId)
        {
            QueryFilter ruleFilter = new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Name, ruleName);
            List <SupervisionTransportRule> supervisionRulesWithFilter = this.GetSupervisionRulesWithFilter(supervisionTransportRuleCollectionId, ruleFilter);

            if (supervisionRulesWithFilter.Count == 0)
            {
                Dictionary <string, string> ruleNames = GetSupervisionPolicy.GetRuleNames();
                base.WriteError(new SupervisionPoliciesNotFoundException(Strings.SupervisionPoliciesNotFound(ruleNames[ruleName])), (ErrorCategory)1003, ruleName);
            }
            else if (supervisionRulesWithFilter.Count > 1)
            {
                base.WriteError(new ManagementObjectAmbiguousException(Strings.SupervisionPolicyAmbiguous), (ErrorCategory)1003, null);
            }
            return(supervisionRulesWithFilter[0]);
        }
        protected override void InternalProcessRecord()
        {
            TaskLogger.LogEnter();
            Dictionary <string, string> ruleNames            = GetSupervisionPolicy.GetRuleNames();
            ADRuleStorageManager        adruleStorageManager = null;

            try
            {
                adruleStorageManager = new ADRuleStorageManager("TransportVersioned", base.DataSession);
            }
            catch (RuleCollectionNotInAdException exception)
            {
                base.WriteError(exception, (ErrorCategory)1003, null);
            }
            QueryFilter queryFilter = GetSupervisionPolicy.GetQueryFilter(ruleNames.Keys);

            adruleStorageManager.LoadRuleCollectionWithoutParsing(queryFilter);
            try
            {
                adruleStorageManager.ParseRuleCollection();
            }
            catch (ParserException exception2)
            {
                base.WriteError(exception2, (ErrorCategory)1003, null);
            }
            SupervisionPolicy presentationObject = GetSupervisionPolicy.GetPresentationObject(adruleStorageManager, ref ruleNames, this.DisplayDetails.ToBool());

            this.WriteResult(presentationObject);
            string missingPolicies = GetSupervisionPolicy.GetMissingPolicies(ruleNames);

            if (!string.IsNullOrEmpty(missingPolicies))
            {
                this.WriteWarning(Strings.SupervisionPoliciesNotFound(missingPolicies));
            }
            TaskLogger.LogExit();
        }