Пример #1
0
        public ConnectHandle ConnectRequestHandler(IRequestPipeConnector consumePipe, Guid requestId, MessageHandler <TMessage> handler,
                                                   IBuildPipeConfigurator <ConsumeContext <TMessage> > configurator)
        {
            configurator.AddPipeSpecification(new HandlerPipeSpecification <TMessage>(handler));

            return(consumePipe.ConnectRequestPipe(requestId, configurator.Build()));
        }
        public ConnectHandle ConnectRequestPipe <T>(Guid requestId, IPipe <ConsumeContext <T> > pipe)
            where T : class
        {
            if (pipe == null)
            {
                throw new ArgumentNullException(nameof(pipe));
            }

            IRequestPipeConnector <T> messagePipe = GetPipe <T, IRequestPipeConnector <T> >();

            return(messagePipe.ConnectRequestPipe(requestId, pipe));
        }
Пример #3
0
        public ConnectHandle ConnectRequestHandler(IRequestPipeConnector consumePipe, Guid requestId, MessageHandler <TMessage> handler,
                                                   params IPipeSpecification <ConsumeContext <TMessage> >[] pipeSpecifications)
        {
            IPipe <ConsumeContext <TMessage> > pipe = Pipe.New <ConsumeContext <TMessage> >(x =>
            {
                foreach (var specification in pipeSpecifications)
                {
                    x.AddPipeSpecification(specification);
                }

                x.AddPipeSpecification(new HandlerPipeSpecification <TMessage>(handler));
            });

            return(consumePipe.ConnectRequestPipe(requestId, pipe));
        }
        public ConnectHandle ConnectRequestObserver(IRequestPipeConnector consumePipe, Guid requestId, IObserver <ConsumeContext <TMessage> > observer,
                                                    params IFilter <ConsumeContext <TMessage> >[] filters)
        {
            IPipe <ConsumeContext <TMessage> > pipe = Pipe.New <ConsumeContext <TMessage> >(x =>
            {
                foreach (IFilter <ConsumeContext <TMessage> > filter in filters)
                {
                    x.UseFilter(filter);
                }

                x.AddPipeSpecification(new ObserverPipeSpecification <TMessage>(observer));
            });

            return(consumePipe.ConnectRequestPipe(requestId, pipe));
        }