protected override void ConfigureMessagePipe(IPipeConfigurator <ConsumeContext <TMessage> > configurator, ISagaRepository <TInstance> repository, IPipe <SagaConsumeContext <TInstance, TMessage> > sagaPipe) { if (_messageFilter != null) { configurator.UseFilter(_messageFilter); } configurator.UseFilter(_sagaFilterFactory(repository, _policy, sagaPipe)); }
/// <summary> /// Configures the command processing pipeline /// </summary> private static void CommandsHandlingConfiguration( IServiceProvider provider, IPipeConfigurator <ICommandHandlingContext> cfg) { //Using standard GreenPipes filters cfg.UseInlineFilter(async(context, next) => { //Pre-processing logic await next.Send(context); //Post-processing logic }); cfg.UseRetry(retry => { retry .Interval(3, TimeSpan.FromSeconds(1)) .Handle <OptimisticLockException>(); }); cfg.UseFilter(new SomeCommandFilter(provider.GetService <ISingletonService>())); }
protected override void ConfigureMessagePipe(IPipeConfigurator <ConsumeContext <TMessage> > configurator, ISagaRepository <TSaga> repository, IPipe <SagaConsumeContext <TSaga, TMessage> > sagaPipe) { configurator.UseFilter(new CorrelationIdMessageFilter <TMessage>(_correlationIdSelector)); configurator.UseFilter(new CorrelatedSagaFilter <TSaga, TMessage>(repository, _policy, sagaPipe)); }
protected override void ConfigureSagaPipe(IPipeConfigurator <SagaConsumeContext <TSaga, TMessage> > configurator) { configurator.UseFilter(_consumeFilter); }
protected override void ConfigureMessagePipe(IPipeConfigurator <ConsumeContext <TMessage> > configurator, ISagaRepository <TSaga> repository, IPipe <SagaConsumeContext <TSaga, TMessage> > sagaPipe) { configurator.UseFilter(new QuerySagaFilter <TSaga, TMessage>(repository, _policy, _queryFactory, sagaPipe)); }