public Task <ISendTransport> CreateSendTransport(RabbitMqEndpointAddress address, IModelContextSupervisor modelContextSupervisor) { TransportLogMessages.CreateSendTransport(address); var settings = _hostTopology.SendTopology.GetSendSettings(address); var brokerTopology = settings.GetBrokerTopology(); IPipe <ModelContext> pipe = new ConfigureTopologyFilter <SendSettings>(settings, brokerTopology).ToPipe(); var supervisor = new ModelContextSupervisor(modelContextSupervisor); var transport = CreateSendTransport(supervisor, pipe, settings.ExchangeName); return(Task.FromResult(transport)); }
public RabbitMqReceiveEndpointContext CreateReceiveEndpointContext() { var brokerTopology = BuildTopology(_configuration.Settings); IDeadLetterTransport deadLetterTransport = CreateDeadLetterTransport(); IErrorTransport errorTransport = CreateErrorTransport(); IModelContextSupervisor supervisor = new ModelContextSupervisor(_host.ConnectionContextSupervisor); var receiveEndpointContext = new RabbitMqQueueReceiveEndpointContext(_host, supervisor, _configuration, brokerTopology); receiveEndpointContext.GetOrAddPayload(() => deadLetterTransport); receiveEndpointContext.GetOrAddPayload(() => errorTransport); return(receiveEndpointContext); }
public Task <ISendTransport> CreatePublishTransport <T>(IModelContextSupervisor modelContextSupervisor) where T : class { IRabbitMqMessagePublishTopology <T> publishTopology = _hostTopology.Publish <T>(); var sendSettings = publishTopology.GetSendSettings(_hostConfiguration.HostAddress); var brokerTopology = publishTopology.GetBrokerTopology(); var supervisor = new ModelContextSupervisor(modelContextSupervisor); IPipe <ModelContext> pipe = new ConfigureTopologyFilter <SendSettings>(sendSettings, brokerTopology).ToPipe(); var transport = CreateSendTransport(supervisor, pipe, publishTopology.Exchange.ExchangeName); return(Task.FromResult(transport)); }