/// <inheritdoc /> public virtual void RegisterPipelines(IMessagePipelineContainer container) { if (container.Pipelines.Length == 0) { throw new ArgumentException(Properties.Strings.WebEndpoint_ValueCannotBeEmptyColleciton, nameof(container.Pipelines)); } this.pipelines = container.Pipelines; }
/// <summary> /// Add event pipeline feature to message context. /// </summary> /// <param name="pipelineContainer">Pipelines container.</param> /// <param name="setupAction">Action to setup event pipeline.</param> /// <returns>Event pipeline builder.</returns> public static EventPipelineBuilder AddEventPipeline(this IMessagePipelineContainer pipelineContainer, Action <EventPipelineOptions> setupAction) { if (pipelineContainer.Pipelines.Any(p => p is IEventPipeline)) { throw new InvalidOperationException("Events pipeline already exists in global context items. " + "Use RemovePipeline method to clean up existins pipeline."); } var eventPipeline = new EventPipeline(); setupAction(eventPipeline.Options); var list = pipelineContainer.Pipelines.ToList(); list.Add(eventPipeline); pipelineContainer.Pipelines = list.ToArray(); return(new EventPipelineBuilder(eventPipeline)); }
/// <summary> /// Add query pipeline feature to message context. /// </summary> /// <param name="messagePipelineContainer">Pipeline container.</param> /// <param name="setupAction">Action to setup query pipeline.</param> /// <returns>Query pipeline builder.</returns> public static QueryPipelineBuilder AddQueryPipeline(this IMessagePipelineContainer messagePipelineContainer, Action <QueryPipelineOptions> setupAction) { if (messagePipelineContainer.Pipelines.Any(p => p is IQueryPipeline)) { throw new InvalidOperationException("Queries pipeline already exists in global context items. " + "Use RemovePipeline method to clean up existins pipeline."); } var queryPipeline = new QueryPipeline(); setupAction(queryPipeline.Options); var list = messagePipelineContainer.Pipelines.ToList(); list.Add(queryPipeline); messagePipelineContainer.Pipelines = list.ToArray(); return(new QueryPipelineBuilder(queryPipeline)); }
/// <summary> /// Add events pipeline feature to message context. /// </summary> /// <param name="pipelineContainer">Pipelines container.</param> /// <returns>Event pipeline builder.</returns> public static EventPipelineBuilder AddEventPipeline(this IMessagePipelineContainer pipelineContainer) { return(AddEventPipeline(pipelineContainer, options => { })); }
/// <summary> /// Add query pipeline feature to message context. /// </summary> /// <param name="messagePipelineContainer">Pipeline container.</param> /// <returns>Query pipeline builder.</returns> public static QueryPipelineBuilder AddQueryPipeline(this IMessagePipelineContainer messagePipelineContainer) { return(AddQueryPipeline(messagePipelineContainer, options => { })); }
/// <summary> /// .ctor /// </summary> /// <param name="serviceProvider">Service provider.</param> /// <param name="messagePipelineContainer">Pipelines container.</param> public DefaultMessagePipelineService(IServiceProvider serviceProvider, IMessagePipelineContainer messagePipelineContainer) { this.ServiceProvider = serviceProvider; this.PipelineContainer = messagePipelineContainer; }