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); } }
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); }