// Token: 0x06000027 RID: 39 RVA: 0x000027E0 File Offset: 0x000009E0 public void OnIndication(string subscriptionId, string indicationType, PropertyBag indicationProperties, PropertyBag sourceInstanceProperties) { if (AuditingNotificationSubscriber.log.IsDebugEnabled) { AuditingNotificationSubscriber.log.DebugFormat("OnIndication type: {0} SubscriptionId: {1}", indicationType, subscriptionId); } if (this.checkAuditingSetting) { try { object value; if (IndicationHelper.GetIndicationType(2) == indicationType && sourceInstanceProperties != null && sourceInstanceProperties.TryGet <string>("SettingsID") == "SWNetPerfMon-AuditingTrails" && sourceInstanceProperties.TryGet <string>("InstanceType") == "Orion.Settings" && sourceInstanceProperties.TryGetValue("CurrentValue", out value)) { this.AuditingTrailsEnabled = Convert.ToBoolean(value); } else if (!this.AuditingTrailsEnabled) { return; } } catch (Exception ex) { AuditingNotificationSubscriber.log.FatalFormat("Auditing check error - will be forciby enabled. {0}", ex); this.AuditingTrailsEnabled = true; this.checkAuditingSetting = false; } } AuditNotificationContainer auditNotificationContainer = new AuditNotificationContainer(indicationType, indicationProperties, sourceInstanceProperties); Func <AuditDataContainer, AuditDataContainer> < > 9__0; Func <string, KeyValuePair <string, object>, string> < > 9__1; Func <string, KeyValuePair <string, object>, string> < > 9__2; foreach (IAuditing2 auditing in this.subscriptionIdToAuditingInstances[subscriptionId]) { try { if (AuditingNotificationSubscriber.log.IsTraceEnabled) { AuditingNotificationSubscriber.log.TraceFormat("Trying plugin {0}", new object[] { auditing }); } IEnumerable <AuditDataContainer> enumerable = auditing.ComposeDataContainers(auditNotificationContainer); if (enumerable != null) { if (AuditingNotificationSubscriber.log.IsTraceEnabled) { AuditingNotificationSubscriber.log.Trace("Storing notification."); } CultureInfo currentUICulture = Thread.CurrentThread.CurrentUICulture; try { Thread.CurrentThread.CurrentUICulture = LocaleConfiguration.GetNonNeutralLocale(LocaleConfiguration.PrimaryLocale); } catch (Exception ex2) { AuditingNotificationSubscriber.log.Warn("Unable set CurrentUICulture to PrimaryLocale.", ex2); } IEnumerable <AuditDataContainer> source = enumerable; Func <AuditDataContainer, AuditDataContainer> selector; if ((selector = < > 9__0) == null) { selector = (< > 9__0 = ((AuditDataContainer composedDataContainer) => new AuditDataContainer(composedDataContainer, auditNotificationContainer.AccountId))); } foreach (AuditDataContainer auditDataContainer in source.Select(selector)) { AuditDatabaseDecoratedContainer auditDatabaseDecoratedContainer = new AuditDatabaseDecoratedContainer(auditDataContainer, auditNotificationContainer, auditing.GetMessage(auditDataContainer)); int insertedId = this.auditingDAL.StoreNotification(auditDatabaseDecoratedContainer); this.PublishModificationOfAuditingEvents(auditDatabaseDecoratedContainer, insertedId); } try { Thread.CurrentThread.CurrentUICulture = currentUICulture; continue; } catch (Exception ex3) { AuditingNotificationSubscriber.log.Warn("Unable set CurrentUICulture back to original locale.", ex3); continue; } } if (AuditingNotificationSubscriber.log.IsTraceEnabled) { AuditingNotificationSubscriber.log.Trace("ComposeDataContainers returned null."); } } catch (Exception ex4) { string text = string.Empty; if (indicationProperties != null) { string newLine = Environment.NewLine; Func <string, KeyValuePair <string, object>, string> func; if ((func = < > 9__1) == null) { func = (< > 9__1 = ((string current, KeyValuePair <string, object> item) => current + this.FormatPropertyData("Indication Property: ", item.Key, item.Value))); } text = indicationProperties.Aggregate(newLine, func); } if (sourceInstanceProperties != null) { string seed = text; Func <string, KeyValuePair <string, object>, string> func2; if ((func2 = < > 9__2) == null) { func2 = (< > 9__2 = ((string current, KeyValuePair <string, object> item) => current + this.FormatPropertyData("SourceInstance Property: ", item.Key, item.Value))); } text = sourceInstanceProperties.Aggregate(seed, func2); } AuditingNotificationSubscriber.log.ErrorFormat("Auditing translation failed. IndicationType: {0}, {1} PluginName: {2}, subscriptionId: {3} Exception: {4}", new object[] { indicationType, text, auditing.PluginName, subscriptionId, ex4 }); } } }