public Task <ISendTransport> CreateSendTransport(Uri address) { var settings = _topology.SendTopology.GetSendSettings(address); var clientContextSupervisor = new AmazonSqsClientContextSupervisor(_host.ConnectionContextSupervisor); var configureTopologyFilter = new ConfigureTopologyFilter <SendSettings>(settings, settings.GetBrokerTopology()); var transport = new QueueSendTransport(clientContextSupervisor, configureTopologyFilter, settings.EntityName); transport.Add(clientContextSupervisor); _host.Add(transport); return(Task.FromResult <ISendTransport>(transport)); }
public Task <ISendTransport> CreatePublishTransport <T>() where T : class { IAmazonSqsMessagePublishTopology <T> publishTopology = _topology.Publish <T>(); var sendSettings = publishTopology.GetPublishSettings(); var clientContextSupervisor = new AmazonSqsClientContextSupervisor(_host.ConnectionContextSupervisor); var configureTopologyFilter = new ConfigureTopologyFilter <PublishSettings>(sendSettings, publishTopology.GetBrokerTopology()); var sendTransport = new TopicSendTransport(clientContextSupervisor, configureTopologyFilter, sendSettings.EntityName); sendTransport.Add(clientContextSupervisor); _host.Add(sendTransport); return(Task.FromResult <ISendTransport>(sendTransport)); }