コード例 #1
0
        /// <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));
        }
コード例 #2
0
 public AuditSendObserver(IMessageAuditStore store, ISendMetadataFactory metadataFactory, CompositeFilter <SendContext> filter)
 {
     _store           = store;
     _metadataFactory = metadataFactory;
     _filter          = filter;
 }