/// <summary>
 /// Serialize messages using the JSON serializer
 /// </summary>
 /// <param name="configurator"></param>
 public static void UseJsonSerializer(this IBusFactoryConfigurator configurator)
 {
     configurator.SetMessageSerializer(() => new JsonMessageSerializer());
 }
示例#2
0
 protected abstract void ConfigureServiceEndpoints(IBusFactoryConfigurator <IInMemoryReceiveEndpointConfigurator> configurator);
示例#3
0
 protected override void ConfigureServiceEndpoints(IBusFactoryConfigurator <IInMemoryReceiveEndpointConfigurator> configurator)
 {
     configurator.ConfigureServiceEndpoints(_container.GetRequiredService <IBusRegistrationContext>(), Options);
 }
示例#4
0
 /// <summary>
 /// Configure Audit Store against Entity Framework Core
 /// </summary>
 /// <param name="configurator"></param>
 /// <param name="dbContextOptions">The DB Context Options configuration builder</param>
 /// <param name="auditTableName">Name of the table to store audit records.</param>
 public static void UseEntityFrameworkCoreAuditStore(this IBusFactoryConfigurator configurator, DbContextOptionsBuilder dbContextOptions,
                                                     string auditTableName)
 {
     ConfigureAuditStore(configurator, dbContextOptions, auditTableName);
 }
 /// <summary>
 /// Configures the factory.
 /// </summary>
 /// <param name="configurator"></param>
 public void Apply(string name, IBusFactoryConfigurator configurator)
 {
     configurator.ConfigureJsonSerializer(Configure);
     configurator.ConfigureJsonDeserializer(Configure);
 }
示例#6
0
 /// <summary>
 /// Configure Audit Store against Entity Framework Core
 /// </summary>
 /// <param name="configurator"></param>
 /// <param name="dbContextOptions">The DB Context Options configuration builder</param>
 /// <param name="auditTableName">Name of the table to store audit records.</param>
 /// <param name="configureFilter">Configure messages to exclude or include from auditing.</param>
 public static void UseEntityFrameworkCoreAuditStore(this IBusFactoryConfigurator configurator, DbContextOptionsBuilder dbContextOptions,
                                                     string auditTableName,
                                                     Action <IMessageFilterConfigurator> configureFilter)
 {
     ConfigureAuditStore(configurator, dbContextOptions, auditTableName, configureFilter);
 }
示例#7
0
 public static void RegisterInMemoryModule(this IBusFactoryConfigurator configurator, IServiceProvider provider)
 {
     configurator.RegisterConsumer <Persistence.EventHandlers.NodesEventHandlers>(provider);
     configurator.RegisterConsumer <Persistence.EventHandlers.FilesEventHandlers>(provider);
 }
示例#8
0
        public static void UseRetry(this IPipeConfigurator <ConsumeContext> configurator, IBusFactoryConfigurator connector,
                                    Action <IRetryConfigurator> configure)
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            var observer = new RetryBusObserver();

            connector.ConnectBusObserver(observer);

            var specification = new ConsumeContextRetryPipeSpecification(observer.Stopping);

            configure?.Invoke(specification);

            configurator.AddPipeSpecification(specification);
        }
示例#9
0
        /// <summary>
        /// For all configured messages type (handlers, consumers, and sagas), configures message retry using the retry configuration specified.
        /// Retry is configured once for each message type, and is added prior to the consumer factory or saga repository in the pipeline.
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="connector">The bus factory configurator, to connect the observer, to cancel retries if the bus is stopped</param>
        /// <param name="configureRetry"></param>
        public static void UseMessageRetry(this IConsumePipeConfigurator configurator, IBusFactoryConfigurator connector,
                                           Action <IRetryConfigurator> configureRetry)
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            if (configureRetry == null)
            {
                throw new ArgumentNullException(nameof(configureRetry));
            }

            var retryObserver = new RetryBusObserver();

            connector.ConnectBusObserver(retryObserver);

            var observer = new RetryConfigurationObserver(configurator, retryObserver.Stopping, configureRetry);
        }
示例#10
0
        public static void UseRetry <TSaga>(this IPipeConfigurator <SagaConsumeContext <TSaga> > configurator, IBusFactoryConfigurator connector,
                                            Action <IRetryConfigurator> configure)
            where TSaga : class, ISaga
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            var observer = new RetryBusObserver();

            connector.ConnectBusObserver(observer);

            var specification = new ConsumeContextRetryPipeSpecification <SagaConsumeContext <TSaga>, RetrySagaConsumeContext <TSaga> >(Factory, observer.Stopping);

            configure?.Invoke(specification);

            configurator.AddPipeSpecification(specification);
        }