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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }