public Task <ISendTransport> CreatePublishTransport <T>(IModelContextSupervisor modelContextSupervisor) where T : class { LogContext.SetCurrentIfNull(_hostConfiguration.LogContext); IRabbitMqMessagePublishTopology <T> publishTopology = _topologyConfiguration.Publish.GetMessageTopology <T>(); var settings = publishTopology.GetSendSettings(_hostConfiguration.HostAddress); var brokerTopology = publishTopology.GetBrokerTopology(); IPipe <ModelContext> configureTopology = new ConfigureTopologyFilter <SendSettings>(settings, brokerTopology).ToPipe(); return(CreateSendTransport(modelContextSupervisor, configureTopology, publishTopology.Exchange.ExchangeName)); }
public Task <ISendTransport> CreatePublishTransport <T>() where T : class { IRabbitMqMessagePublishTopology <T> publishTopology = _hostTopology.Publish <T>(); var sendSettings = publishTopology.GetSendSettings(_hostConfiguration.HostAddress); var brokerTopology = publishTopology.GetBrokerTopology(); var supervisor = CreateModelContextSupervisor(); IPipe <ModelContext> pipe = new ConfigureTopologyFilter <SendSettings>(sendSettings, brokerTopology).ToPipe(); var transport = CreateSendTransport(supervisor, pipe, publishTopology.Exchange.ExchangeName); return(Task.FromResult(transport)); }
public Task <ISendTransport> GetPublishTransport <T>(Uri publishAddress) where T : class { IRabbitMqMessagePublishTopology <T> publishTopology = _publishTopology.GetMessageTopology <T>(); var sendSettings = publishTopology.GetSendSettings(); var brokerTopology = publishTopology.GetBrokerTopology(_publishTopology.BrokerTopologyOptions); IAgent <ModelContext> modelSource = GetModelSource(); var sendTransport = new RabbitMqSendTransport(modelSource, new ConfigureTopologyFilter <SendSettings>(sendSettings, brokerTopology), sendSettings.ExchangeName); _host.Add(sendTransport); return(Task.FromResult <ISendTransport>(sendTransport)); }