/// <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); }
public async Task InvokeAsync( ScopedPublishPipelineModuleConfig config, PipelineContext pipelineContext, NextModuleDelegate invokeNextModule ) { await _publishingService.PublishEventToScopedSubscriptionsAsync( pipelineContext.PipelineEvent, pipelineContext.EventsScope ).ConfigureAwait(false); await invokeNextModule(pipelineContext).ConfigureAwait(false); }
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); }
public Task InvokeAsync(TestPipelineModuleConfig config, PipelineContext pipelineContext, NextModuleDelegate invokeNextModule) => Task.CompletedTask;
public abstract Task InvokeAsync(PipelineContext pipelineContext, NextModuleDelegate next);
internal Pipeline(IServiceProvider internalServiceProvider) { _internalServiceProvider = internalServiceProvider; _moduleProxies = new List <ModuleProxy>(); _nextModule = null; }