예제 #1
0
        public virtual bool TryGetContext <TMessage>(out IBusPublishContext <TMessage> context)
            where TMessage : class
        {
            context = PublishContext <TMessage> .FromMessage(_message, this);

            return(context != null);
        }
예제 #2
0
        public IEnumerable <Action <IBusPublishContext <TMessage> > > Enumerate(IBusPublishContext <TMessage> context)
        {
            if (_accept(context))
            {
                return(_output.Enumerate(context));
            }

            return(Enumerable.Empty <Action <IBusPublishContext <TMessage> > >());
        }
예제 #3
0
        public IEnumerable <Action <IBusPublishContext <TMessage> > > Enumerate(IBusPublishContext <TMessage> context)
        {
            yield return(x =>
            {
                if (x.WasEndpointAlreadySent(_endpoint.Address))
                {
                    return;
                }

                _endpoint.Send(x);
            });
        }
예제 #4
0
        public override bool TryGetContext <TMessage>(out IBusPublishContext <TMessage> context)
        {
            context = null;

            if (typeof(TMessage).IsAssignableFrom(typeof(T)))
            {
                var busPublishContext = new PublishContext <TMessage>(Message as TMessage, this);
                busPublishContext._wasEndpointAlreadySent = _wasEndpointAlreadySent;
                busPublishContext.IfNoSubscribers(_noSubscribersAction);
                busPublishContext.ForEachSubscriber(_eachSubscriberAction);

                context = busPublishContext;
            }

            return(context != null);
        }
예제 #5
0
 public bool TryGetContext <T>(out IBusPublishContext <T> context)
     where T : class
 {
     throw new MessageException(typeof(T), "The message type is unknown and can not be type-cast");
 }
예제 #6
0
 public bool TryGetContext <T>(out IBusPublishContext <T> context)
     where T : class
 {
     context = null;
     return(false);
 }
예제 #7
0
 public bool TryGetContext <T>(out IBusPublishContext <T> context) where T : class
 {
     throw CreateException();
 }