/// <summary> /// Adds observers that will audit all published and sent messages, sending them to the message audit store after they are sent/published. /// </summary> /// <param name="connector">The bus</param> /// <param name="store">Audit store</param> /// <param name="configureFilter">Filter configuration delegate</param> /// <param name="metadataFactory">Message metadata factory. If omited, the default one will be used.</param> public static ConnectHandle ConnectSendAuditObservers <T>(this T connector, IMessageAuditStore store, Action <IMessageFilterConfigurator> configureFilter = null, ISendMetadataFactory metadataFactory = null) where T : ISendObserverConnector, IPublishObserverConnector { var specification = new SendMessageFilterSpecification(); configureFilter?.Invoke(specification); var factory = metadataFactory ?? new DefaultSendMetadataFactory(); var sendHandle = connector.ConnectSendObserver(new AuditSendObserver(store, factory, specification.Filter)); var publishHandle = connector.ConnectPublishObserver(new AuditPublishObserver(store, factory, specification.Filter)); return(new MultipleConnectHandle(sendHandle, publishHandle)); }
public AuditSendObserver(IMessageAuditStore store, ISendMetadataFactory metadataFactory, CompositeFilter <SendContext> filter) { _store = store; _metadataFactory = metadataFactory; _filter = filter; }