Exemple #1
0
        /// <inheritdoc />
        public Task ProcessEventAsync(
            PipelineEvent pipelineEvent,
            IEventsScope eventsScope
            )
        {
            var pipeline = _nextModule ?? (_nextModule = Build());

            return(pipeline(new PipelineContext(pipelineEvent, eventsScope, _internalServiceProvider)));
        }
 public Task InvokeAsync(
     FilterPipelineModuleConfig config,
     PipelineContext pipelineContext,
     NextModuleDelegate invokeNextModule
     )
 {
     return(config.IsMatching(pipelineContext.PipelineEvent.Event)
         ? invokeNextModule(pipelineContext)
         : Task.CompletedTask);
 }
Exemple #3
0
        public async Task InvokeAsync(
            ScopedPublishPipelineModuleConfig config,
            PipelineContext pipelineContext,
            NextModuleDelegate invokeNextModule
            )
        {
            await _publishingService.PublishEventToScopedSubscriptionsAsync(
                pipelineContext.PipelineEvent,
                pipelineContext.EventsScope
                ).ConfigureAwait(false);

            await invokeNextModule(pipelineContext).ConfigureAwait(false);
        }
Exemple #4
0
        public Task InvokeAsync(
            ProjectionPipelineModuleConfig config,
            PipelineContext pipelineContext,
            NextModuleDelegate invokeNextModule
            )
        {
            var projectedEvent = config.EventProjection.Convert(pipelineContext.PipelineEvent.Event);

            var projectedPipelineEvent = new PipelineEvent(projectedEvent);

            pipelineContext.PipelineEvent = projectedPipelineEvent;

            return(invokeNextModule(pipelineContext));
        }
        public Task InvokeAsync(
            EnqueuePipelineModuleConfig config,
            PipelineContext pipelineContext,
            NextModuleDelegate invokeNextModule
            )
        {
            _eventsQueuesService.EnqueueEvent(
                pipelineContext.EventsScope,
                pipelineContext.PipelineEvent,
                config.QueueName,
                () => invokeNextModule(pipelineContext)
                );

            return(Task.CompletedTask);
        }
        public async Task InvokeAsync(
            AzureSignalRPipelineModuleConfig config,
            PipelineContext pipelineContext,
            NextModuleDelegate invokeNextModule
            )
        {
            await _eventSendingService.SendEventAsync(
                config.PublicationMethod,
                config.HubName,
                config.HubMethodName,
                config.ReceiverIdsProviderAction?.Invoke(pipelineContext.PipelineEvent.Event),
                pipelineContext.PipelineEvent.Event
                ).ConfigureAwait(false);

            await invokeNextModule(pipelineContext).ConfigureAwait(false);
        }
        public async Task InvokeAsync(
            GlobalPublishPipelineModuleConfig config,
            PipelineContext pipelineContext,
            NextModuleDelegate invokeNextModule
            )
        {
            if (config.SenderType != null)
            {
                if (_eventSenders.TryGetValue(config.SenderType, out var eventSender))
                {
                    await eventSender.SendAsync(pipelineContext.PipelineEvent).ConfigureAwait(false);
                }
                else
                {
                    throw new EventSenderNotFoundException();
                }
            }
            else
            {
                await _publishingService.PublishEventToGlobalSubscriptionsAsync(pipelineContext.PipelineEvent).ConfigureAwait(false);
            }

            await invokeNextModule(pipelineContext).ConfigureAwait(false);
        }
Exemple #8
0
 public Task InvokeAsync(TestPipelineModuleConfig config, PipelineContext pipelineContext, NextModuleDelegate invokeNextModule)
 => Task.CompletedTask;
Exemple #9
0
 public abstract Task InvokeAsync(PipelineContext pipelineContext, NextModuleDelegate next);
Exemple #10
0
 internal Pipeline(IServiceProvider internalServiceProvider)
 {
     _internalServiceProvider = internalServiceProvider;
     _moduleProxies           = new List <ModuleProxy>();
     _nextModule = null;
 }