public void Apply(ISpecificationPipeBuilder <ConsumeContext <TMessage> > builder)
        {
            if (!builder.IsDelegated && _parentMessageSpecifications.Count > 0)
            {
                ISpecificationPipeBuilder <ConsumeContext <TMessage> > delegatedBuilder = builder.CreateDelegatedBuilder();

                foreach (ISpecificationPipeSpecification <ConsumeContext <TMessage> > specification in _parentMessageSpecifications)
                {
                    specification.Apply(delegatedBuilder);
                }
            }

            foreach (IPipeSpecification <ConsumeContext <TMessage> > specification in _specifications)
            {
                specification.Apply(builder);
            }

            if (!builder.IsImplemented)
            {
                foreach (IPipeSpecification <ConsumeContext> specification in _baseSpecifications)
                {
                    var split = new SplitFilterPipeSpecification <ConsumeContext <TMessage>, ConsumeContext>(specification, MergeContext, FilterContext);
                    split.Apply(builder);
                }
            }
        }
        public void Apply(ISpecificationPipeBuilder <ConsumeContext <TMessage> > builder)
        {
            if (!builder.IsDelegated && _parentMessageSpecifications.Count > 0)
            {
                ISpecificationPipeBuilder <ConsumeContext <TMessage> > delegatedBuilder = builder.CreateDelegatedBuilder();

                for (var index = 0; index < _parentMessageSpecifications.Count; index++)
                {
                    _parentMessageSpecifications[index].Apply(delegatedBuilder);
                }
            }

            for (var index = 0; index < _specifications.Count; index++)
            {
                _specifications[index].Apply(builder);
            }

            if (!builder.IsImplemented)
            {
                for (var index = 0; index < _baseSpecifications.Count; index++)
                {
                    var split = new SplitFilterPipeSpecification <ConsumeContext <TMessage>, ConsumeContext>(_baseSpecifications[index], MergeContext,
                                                                                                             FilterContext);
                    split.Apply(builder);
                }
            }
        }
        public ChildSpecificationPipeBuilder(ISpecificationPipeBuilder <T> builder, bool isImplemented, bool isDelegated)
        {
            _builder = builder;

            IsDelegated   = isDelegated;
            IsImplemented = isImplemented;
        }
        public void Apply(ISpecificationPipeBuilder <ConsumeContext <TMessage> > builder)
        {
            if (!builder.IsDelegated)
            {
                ISpecificationPipeBuilder <ConsumeContext <TMessage> > delegatedBuilder = builder.CreateDelegatedBuilder();

                foreach (ISpecificationPipeSpecification <ConsumeContext <TMessage> > specification in _parentMessageSpecifications)
                {
                    specification.Apply(delegatedBuilder);
                }
            }

            foreach (IPipeSpecification <ConsumeContext <TMessage> > specification in _specifications)
            {
                specification.Apply(builder);
            }
        }
Ejemplo n.º 5
0
        public void Apply(ISpecificationPipeBuilder <PublishContext <TMessage> > builder)
        {
            if (!builder.IsDelegated && _implementedMessageTypeSpecifications.Count > 0)
            {
                ISpecificationPipeBuilder <PublishContext <TMessage> > implementedBuilder = builder.CreateImplementedBuilder();

                for (var index = _implementedMessageTypeSpecifications.Count - 1; index >= 0; index--)
                {
                    _implementedMessageTypeSpecifications[index].Apply(implementedBuilder);
                }
            }

            var parentCount = _parentMessageSpecifications.Count;

            if (parentCount > 0)
            {
                ISpecificationPipeBuilder <PublishContext <TMessage> > delegatedBuilder = builder.CreateDelegatedBuilder();

                for (var index = 0; index < parentCount; index++)
                {
                    _parentMessageSpecifications[index].Apply(delegatedBuilder);
                }
            }

            for (var index = 0; index < _specifications.Count; index++)
            {
                _specifications[index].Apply(builder);
            }

            if (!builder.IsImplemented)
            {
                for (var index = 0; index < _baseSpecifications.Count; index++)
                {
                    var split = new SplitFilterPipeSpecification <PublishContext <TMessage>, PublishContext>(_baseSpecifications[index], MergeContext,
                                                                                                             FilterContext);

                    split.Apply(builder);
                }
            }
        }
        public void Apply(ISpecificationPipeBuilder <SendContext <TMessage> > builder)
        {
            if (!builder.IsDelegated)
            {
                ISpecificationPipeBuilder <SendContext <TMessage> > implementedBuilder = builder.CreateImplementedBuilder();

                foreach (ISpecificationPipeSpecification <SendContext <TMessage> > specification in _implementedMessageTypeSpecifications.Reverse())
                {
                    specification.Apply(implementedBuilder);
                }
            }

            ISpecificationPipeBuilder <SendContext <TMessage> > delegatedBuilder = builder.CreateDelegatedBuilder();

            foreach (ISpecificationPipeSpecification <SendContext <TMessage> > specification in _parentMessageSpecifications)
            {
                specification.Apply(delegatedBuilder);
            }

            foreach (IPipeSpecification <SendContext <TMessage> > specification in _specifications)
            {
                specification.Apply(builder);
            }
        }
 public Builder(ISpecificationPipeBuilder <PublishContext <TMessage> > builder)
 {
     _builder = builder;
 }
        public void Apply(ISpecificationPipeBuilder <PublishContext <TMessage> > builder)
        {
            var splitBuilder = new Builder(builder);

            _specification.Apply(splitBuilder);
        }
            public void Apply(ISpecificationPipeBuilder <ConsumeContext <TMessage> > builder)
            {
                var specification = new MessageConsumePipeSplitFilterSpecification <TMessage, T>(_specification);

                specification.Apply(builder);
            }
        public void Apply(ISpecificationPipeBuilder <PublishContext <TMessage> > builder)
        {
            var typeBuilder = new Builder(builder);

            _messagePublishTopology.Apply(typeBuilder);
        }