/// <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;
 }
示例#2
0
        /// <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));
        }
示例#4
0
 /// <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;
 }