protected BaseConsumeContext(ReceiveContext receiveContext, ISendEndpointProvider sendEndpointProvider, IPublishEndpointProvider publishEndpointProvider)
        {
            _receiveContext          = receiveContext;
            _sendEndpointProvider    = sendEndpointProvider;
            _publishEndpointProvider = publishEndpointProvider;

            _publishEndpoint =
                new Lazy <IPublishEndpoint>(() => _publishEndpointProvider.CreatePublishEndpoint(_receiveContext.InputAddress, CorrelationId, ConversationId));
        }
Esempio n. 2
0
        public MassTransitBus(Uri address, IConsumePipe consumePipe, ISendEndpointProvider sendEndpointProvider,
                              IPublishEndpointProvider publishEndpointProvider, IBusHostCollection hosts,
                              IBusObserver busObservable)
        {
            Address                  = address;
            _consumePipe             = consumePipe;
            _sendEndpointProvider    = sendEndpointProvider;
            _publishEndpointProvider = publishEndpointProvider;
            _busObservable           = busObservable;
            _hosts = hosts;

            _publishEndpoint = new Lazy <IPublishEndpoint>(() => publishEndpointProvider.CreatePublishEndpoint(address));
        }
        void GenerateFault(ExceptionReceiveContext context)
        {
            Guid?faultedMessageId = context.TransportHeaders.Get("MessageId", default(Guid?));

            ReceiveFault fault = new ReceiveFaultEvent(HostMetadataCache.Host, context.Exception, context.ContentType.MediaType, faultedMessageId);

            var publishEndpoint = _publishEndpoint.CreatePublishEndpoint(context.InputAddress);

            var publishTask = publishEndpoint.Publish(fault, context.CancellationToken);

            context.AddPendingTask(publishTask);

            context.AddPendingTask(context.NotifyFaulted(context.Exception));
        }
        public JsonConsumeContext(JsonSerializer deserializer, ISendEndpointProvider sendEndpointProvider, IPublishEndpointProvider publishEndpointProvider,
                                  ReceiveContext receiveContext, MessageEnvelope envelope)
        {
            _receiveContext          = receiveContext;
            _envelope                = envelope;
            _sendEndpointProvider    = sendEndpointProvider;
            _publishEndpointProvider = publishEndpointProvider;
            _deserializer            = deserializer;
            _messageToken            = GetMessageToken(envelope.Message);
            _supportedTypes          = envelope.MessageType.ToArray();
            _messageTypes            = new Dictionary <Type, object>();

            _publishEndpoint = new Lazy <IPublishEndpoint>(() => _publishEndpointProvider.CreatePublishEndpoint(_receiveContext.InputAddress, CorrelationId, ConversationId));
        }
Esempio n. 5
0
        public MassTransitBus(Uri address, IConsumePipe consumePipe, ISendEndpointProvider sendEndpointProvider,
                              IPublishEndpointProvider publishEndpointProvider, IEnumerable <IReceiveEndpoint> receiveEndpoints, IEnumerable <IBusHostControl> hosts,
                              IBusObserver busObservable)
        {
            Address                  = address;
            _consumePipe             = consumePipe;
            _sendEndpointProvider    = sendEndpointProvider;
            _publishEndpointProvider = publishEndpointProvider;
            _busObservable           = busObservable;
            _receiveEndpoints        = receiveEndpoints.ToArray();
            _hosts = hosts.ToArray();

            _receiveObservers = new ReceiveObservable();
            _publishEndpoint  = new Lazy <IPublishEndpoint>(() => publishEndpointProvider.CreatePublishEndpoint(address));
        }
Esempio n. 6
0
        public StaticConsumeContext(JsonSerializer deserializer, ISendEndpointProvider sendEndpointProvider,
                                    IPublishEndpointProvider publishEndpointProvider,
                                    ReceiveContext receiveContext, object message, Header[] headers)
        {
            _deserializer         = deserializer;
            _receiveContext       = receiveContext;
            _sendEndpointProvider = sendEndpointProvider;
            _messageTypes         = new Dictionary <Type, object>();
            _pendingTasks         = new List <Task>();
            _message       = message;
            _binaryHeaders = headers;

            _supportedTypes = new[] { GetHeaderString(BinaryMessageSerializer.MessageTypeKey) };

            _publishEndpoint = publishEndpointProvider.CreatePublishEndpoint(receiveContext.InputAddress, CorrelationId, ConversationId);
        }
Esempio n. 7
0
        public IPublishEndpoint CreatePublishEndpoint(Uri sourceAddress, ConsumeContext context = null)
        {
            var publishEndpoint = _publishEndpointProvider.CreatePublishEndpoint(sourceAddress, context);

            return(new OutboxPublishEndpoint(_outboxContext, publishEndpoint));
        }