// Token: 0x060006BC RID: 1724 RVA: 0x0002AC94 File Offset: 0x00028E94 public AuditDataContainer GetAuditDataContainer(int auditEventId) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); using (SqlCommand textCommand = SqlHelper.GetTextCommand("SELECT [ArgsKey], [ArgsValue] FROM [dbo].[AuditingArguments] WITH(NOLOCK) WHERE [AuditEventID] = @AuditEventID;")) { textCommand.Parameters.AddWithValue("@AuditEventID", auditEventId); using (IDataReader dataReader = SqlHelper.ExecuteReader(textCommand)) { while (dataReader.Read()) { dictionary.Add(dataReader["ArgsKey"].ToString(), dataReader["ArgsValue"].ToString()); } } } AuditDataContainer result; using (SqlCommand textCommand2 = SqlHelper.GetTextCommand("SELECT TOP 1 [AccountID], [ActionTypeID] FROM [dbo].[AuditingEvents] WITH(NOLOCK) WHERE [AuditEventID] = @AuditEventID;")) { textCommand2.Parameters.AddWithValue("@AuditEventID", auditEventId); using (IDataReader dataReader2 = SqlHelper.ExecuteReader(textCommand2)) { dataReader2.Read(); result = new AuditDataContainer(this.GetActionTypeFromActionId((int)dataReader2["ActionTypeID"]), dictionary, dataReader2["AccountID"].ToString()); } } return(result); }
// Token: 0x06000021 RID: 33 RVA: 0x00002700 File Offset: 0x00000900 public AuditDatabaseDecoratedContainer(AuditDataContainer adc, AuditNotificationContainer anc, string message) : base(adc) { if (anc == null) { throw new ArgumentNullException("anc"); } if (string.IsNullOrEmpty(message)) { throw new ArgumentNullException("message"); } object obj; if (anc.IndicationProperties != null && anc.IndicationProperties.TryGetValue(IndicationConstants.AccountId, out obj)) { this.accountId = (obj as string); } else { this.accountId = "SYSTEM"; } this.indicationTime = anc.GetIndicationPropertyValue <DateTime>("IndicationTime"); if (this.indicationTime.Kind == DateTimeKind.Unspecified) { this.indicationTime = DateTime.SpecifyKind(this.indicationTime, DateTimeKind.Utc); } else { this.indicationTime = this.indicationTime.ToUniversalTime(); } this.message = message; }
private static void DebugAuditingPluginNPM(Type derivedType, IAuditing pluginInstance) { if (AuditingPluginManager.log.IsDebugEnabled && derivedType.FullName == "SolarWinds.NPM.Auditing.InterfaceAdded") { AuditDataContainer auditDataContainer = new AuditDataContainer(pluginInstance.SupportedActionTypes.First <AuditActionType>(), new Dictionary <string, string> { { "ObjectType", "dummy" } }, "dummy"); string message = pluginInstance.GetMessage(auditDataContainer); AuditingPluginManager.log.DebugFormat("\"{0}::{1}\" Installed Successfully. Example message: \"{2}\".", pluginInstance.GetType(), pluginInstance.SupportedIndicationType, message); GC.KeepAlive(message); } }
public AuditDatabaseDecoratedContainer( AuditDataContainer adc, AuditNotificationContainer anc, string message) { this.\u002Ector(adc); if (anc == null) { throw new ArgumentNullException(nameof(anc)); } if (string.IsNullOrEmpty(message)) { throw new ArgumentNullException(nameof(message)); } object obj; this.accountId = anc.get_IndicationProperties() == null || !((Dictionary <string, object>)anc.get_IndicationProperties()).TryGetValue((string)IndicationConstants.AccountId, out obj) ? "SYSTEM" : obj as string; this.indicationTime = (DateTime)anc.GetIndicationPropertyValue <DateTime>(nameof(IndicationTime)); this.indicationTime = this.indicationTime.Kind != DateTimeKind.Unspecified ? this.indicationTime.ToUniversalTime() : DateTime.SpecifyKind(this.indicationTime, DateTimeKind.Utc); this.message = message; }
public Task OnNotificationAsync(Notification notification) { if (AuditingNotificationSubscriber.log.get_IsDebugEnabled()) { AuditingNotificationSubscriber.log.DebugFormat("OnNotification type: {0} SubscriptionId: {1}", (object)notification.get_IndicationType(), (object)notification.get_SubscriptionId()); } PropertyBag propertyBag1 = new PropertyBag(notification.get_SourceInstanceProperties()); PropertyBag propertyBag2 = new PropertyBag(notification.get_IndicationProperties()); if (this.checkAuditingSetting) { try { object obj; if (IndicationHelper.GetIndicationType((IndicationType)2) == notification.get_IndicationType() && propertyBag1 != null && ((string)propertyBag1.TryGet <string>("SettingsID") == "SWNetPerfMon-AuditingTrails" && (string)propertyBag1.TryGet <string>("InstanceType") == "Orion.Settings") && ((Dictionary <string, object>)propertyBag1).TryGetValue("CurrentValue", out obj)) { this.AuditingTrailsEnabled = Convert.ToBoolean(obj); } else if (!this.AuditingTrailsEnabled) { return(Task.CompletedTask); } } catch (Exception ex) { AuditingNotificationSubscriber.log.FatalFormat("Auditing check error - will be forciby enabled. {0}", (object)ex); this.AuditingTrailsEnabled = true; this.checkAuditingSetting = false; } } AuditNotificationContainer auditNotificationContainer = new AuditNotificationContainer(notification.get_IndicationType(), propertyBag2, propertyBag1); IEnumerable <IAuditing2> iauditing2s; if (this.subscriptionIdToAuditingInstances.TryGetValue(notification.get_SubscriptionId().ToString(), out iauditing2s)) { using (IEnumerator <IAuditing2> enumerator1 = iauditing2s.GetEnumerator()) { while (((IEnumerator)enumerator1).MoveNext()) { IAuditing2 current1 = enumerator1.Current; try { if (AuditingNotificationSubscriber.log.get_IsTraceEnabled()) { AuditingNotificationSubscriber.log.TraceFormat("Trying plugin {0}", new object[1] { (object)current1 }); } IEnumerable <AuditDataContainer> source = ((IAuditing)current1).ComposeDataContainers(auditNotificationContainer); if (source != null) { if (AuditingNotificationSubscriber.log.get_IsTraceEnabled()) { AuditingNotificationSubscriber.log.Trace((object)"Storing notification."); } CultureInfo currentUiCulture = Thread.CurrentThread.CurrentUICulture; try { Thread.CurrentThread.CurrentUICulture = LocaleConfiguration.GetNonNeutralLocale(LocaleConfiguration.get_PrimaryLocale()); } catch (Exception ex) { AuditingNotificationSubscriber.log.Warn((object)"Unable set CurrentUICulture to PrimaryLocale.", ex); } using (IEnumerator <AuditDataContainer> enumerator2 = source.Select <AuditDataContainer, AuditDataContainer>((Func <AuditDataContainer, AuditDataContainer>)(composedDataContainer => new AuditDataContainer(composedDataContainer, auditNotificationContainer.get_AccountId()))).GetEnumerator()) { while (((IEnumerator)enumerator2).MoveNext()) { AuditDataContainer current2 = enumerator2.Current; AuditDatabaseDecoratedContainer decoratedContainer = new AuditDatabaseDecoratedContainer(current2, auditNotificationContainer, ((IAuditing)current1).GetMessage(current2)); int insertedId = this.auditingDAL.StoreNotification(decoratedContainer); this.PublishModificationOfAuditingEvents(decoratedContainer, insertedId); } } try { Thread.CurrentThread.CurrentUICulture = currentUiCulture; } catch (Exception ex) { AuditingNotificationSubscriber.log.Warn((object)"Unable set CurrentUICulture back to original locale.", ex); } } else if (AuditingNotificationSubscriber.log.get_IsTraceEnabled()) { AuditingNotificationSubscriber.log.Trace((object)"ComposeDataContainers returned null."); } } catch (Exception ex) { string seed = string.Empty; if (propertyBag2 != null) { seed = ((IEnumerable <KeyValuePair <string, object> >)propertyBag2).Aggregate <KeyValuePair <string, object>, string>(Environment.NewLine, (Func <string, KeyValuePair <string, object>, string>)((current, item) => current + this.FormatPropertyData("Indication Property: ", item.Key, item.Value))); } if (propertyBag1 != null) { seed = ((IEnumerable <KeyValuePair <string, object> >)propertyBag1).Aggregate <KeyValuePair <string, object>, string>(seed, (Func <string, KeyValuePair <string, object>, string>)((current, item) => current + this.FormatPropertyData("SourceInstance Property: ", item.Key, item.Value))); } AuditingNotificationSubscriber.log.ErrorFormat("Auditing translation failed. IndicationType: {0}, {1} PluginName: {2}, subscriptionId: {3} Exception: {4}", new object[5] { (object)notification.get_IndicationType(), (object)seed, (object)((IAuditing)current1).get_PluginName(), (object)notification.get_SubscriptionId(), (object)ex }); } } } } else if (AuditingNotificationSubscriber.log.get_IsDebugEnabled()) { AuditingNotificationSubscriber.log.DebugFormat("No auditing instances has been registered yet for subscriptionId '{0}'", (object)notification.get_SubscriptionId().ToString()); } return(Task.CompletedTask); }