protected override void InternalProcessRecord() { Func <ErrorRecord, bool> predicate = (ErrorRecord e) => !(e.Exception is ManagementObjectNotFoundException); foreach (Workload workload in AuditConfigUtility.AuditableWorkloads) { AuditSwitchStatus auditSwitch = this.Workload.Contains(workload) ? AuditSwitchStatus.On : AuditSwitchStatus.Off; MultiValuedProperty <AuditableOperations> auditOperations = AuditConfigUtility.GetAuditOperations(workload, auditSwitch); IEnumerable <ErrorRecord> errRecords; AuditConfigurationRule auditConfigurationRule = AuditConfigUtility.GetAuditConfigurationRule(workload, this.Organization, out errRecords); if (AuditConfigUtility.ValidateErrorRecords(this, errRecords, predicate)) { if (auditConfigurationRule != null) { AuditConfigUtility.SetAuditConfigurationRule(workload, this.Organization, auditOperations, out errRecords); AuditConfigUtility.ValidateErrorRecords(this, errRecords); } else { AuditConfigurationPolicy auditConfigurationPolicy = AuditConfigUtility.GetAuditConfigurationPolicy(workload, this.Organization, out errRecords); if (AuditConfigUtility.ValidateErrorRecords(this, errRecords, predicate)) { if (auditConfigurationPolicy == null) { auditConfigurationPolicy = AuditConfigUtility.NewAuditConfigurationPolicy(workload, this.Organization, out errRecords); if (!AuditConfigUtility.ValidateErrorRecords(this, errRecords)) { continue; } } auditConfigurationRule = AuditConfigUtility.NewAuditConfigurationRule(workload, this.Organization, auditOperations, out errRecords); AuditConfigUtility.ValidateErrorRecords(this, errRecords); } } } } }
internal static MultiValuedProperty <AuditableOperations> GetAuditOperations(Workload workload, AuditSwitchStatus auditSwitch) { if (auditSwitch == AuditSwitchStatus.On) { return(AuditConfigUtility.auditMap[workload].Item2); } return(AuditConfigUtility.auditMap[workload].Item1); }