public IGlobalReceivePipe <IReceiveContext <IMessage> > Build() { IGlobalReceivePipe <IReceiveContext <IMessage> > current = null; if (_specifications.Any()) { for (int i = _specifications.Count - 1; i >= 0; i--) { if (i == _specifications.Count - 1) { var thisPipe = new GlobalReceivePipe <IReceiveContext <IMessage> >(_specifications[i], null, _resolver); current = thisPipe; } else { var thisPipe = new GlobalReceivePipe <IReceiveContext <IMessage> >(_specifications[i], current, _resolver); current = thisPipe; } } } else { current = new GlobalReceivePipe <IReceiveContext <IMessage> >(new EmptyPipeSpecification <IReceiveContext <IMessage> >(), null, _resolver); } return(current); }
public Mediator(ICommandReceivePipe <IReceiveContext <ICommand> > commandReceivePipe, IEventReceivePipe <IReceiveContext <IEvent> > eventReceivePipe, IRequestReceivePipe <IReceiveContext <IRequest> > requestPipe, IPublishPipe <IPublishContext <IEvent> > publishPipe, IGlobalReceivePipe <IReceiveContext <IMessage> > globalPipe, IDependancyScope scope = null) { _commandReceivePipe = commandReceivePipe; _eventReceivePipe = eventReceivePipe; _requestPipe = requestPipe; _publishPipe = publishPipe; _globalPipe = globalPipe; _scope = scope; }
private IGlobalReceivePipe <IReceiveContext <IMessage> > Chain() { IGlobalReceivePipe <IReceiveContext <IMessage> > current = null; if (_specifications.Any()) { for (int i = _specifications.Count - 1; i >= 0; i--) { current = i == _specifications.Count - 1 ? new GlobalReceivePipe <IReceiveContext <IMessage> >(_specifications[i], null) : new GlobalReceivePipe <IReceiveContext <IMessage> >(_specifications[i], current); } return(current); } return(new GlobalReceivePipe <IReceiveContext <IMessage> >(new EmptyPipeSpecification <IReceiveContext <IMessage> >(), null)); }