IDeadLetterTransport CreateDeadLetterTransport(TransportSetHeaderAdapter <MessageAttributeValue> headerAdapter) { var deadLetterSettings = _configuration.Topology.Send.GetDeadLetterSettings(_configuration.Settings); var filter = new ConfigureTopologyFilter <DeadLetterSettings>(deadLetterSettings, deadLetterSettings.GetBrokerTopology()); return(new SqsDeadLetterTransport(deadLetterSettings.EntityName, headerAdapter, filter)); }
IErrorTransport CreateErrorTransport(TransportSetHeaderAdapter <MessageAttributeValue> headerAdapter) { var errorSettings = _configuration.Topology.Send.GetErrorSettings(_configuration.Settings); var filter = new ConfigureTopologyFilter <ErrorSettings>(errorSettings, errorSettings.GetBrokerTopology()); return(new SqsErrorTransport(errorSettings.EntityName, headerAdapter, filter)); }
public HostSqsSendTransportContext(IClientContextSupervisor clientContextSupervisor, IPipe <ClientContext> configureTopologyPipe, string entityName, ILogContext logContext, AllowTransportHeader allowTransportHeader) : base(logContext) { ClientContextSupervisor = clientContextSupervisor; ConfigureTopologyPipe = configureTopologyPipe; EntityName = entityName; SqsSetHeaderAdapter = new TransportSetHeaderAdapter <MessageAttributeValue>(new SqsHeaderValueConverter(allowTransportHeader), TransportHeaderOptions.IncludeFaultMessage); SnsSetHeaderAdapter = new TransportSetHeaderAdapter <Amazon.SimpleNotificationService.Model.MessageAttributeValue>( new SnsHeaderValueConverter(allowTransportHeader), TransportHeaderOptions.IncludeFaultMessage); }
public SendTransportContext(IAmazonSqsHostConfiguration hostConfiguration, IClientContextSupervisor clientContextSupervisor, IPipe <ClientContext> configureTopologyPipe, string entityName) : base(hostConfiguration) { _hostConfiguration = hostConfiguration; ClientContextSupervisor = clientContextSupervisor; ConfigureTopologyPipe = configureTopologyPipe; EntityName = entityName; SqsSetHeaderAdapter = new TransportSetHeaderAdapter <MessageAttributeValue>( new SqsHeaderValueConverter(hostConfiguration.Settings.AllowTransportHeader), TransportHeaderOptions.IncludeFaultMessage); SnsSetHeaderAdapter = new TransportSetHeaderAdapter <Amazon.SimpleNotificationService.Model.MessageAttributeValue>( new SnsHeaderValueConverter(hostConfiguration.Settings.AllowTransportHeader), TransportHeaderOptions.IncludeFaultMessage); }
public SqsReceiveEndpointContext CreateReceiveEndpointContext() { var brokerTopology = BuildTopology(_configuration.Settings); var headerAdapter = new TransportSetHeaderAdapter <MessageAttributeValue>(new SqsHeaderValueConverter(_hostSettings.AllowTransportHeader), TransportHeaderOptions.IncludeFaultMessage); var deadLetterTransport = CreateDeadLetterTransport(headerAdapter); var errorTransport = CreateErrorTransport(headerAdapter); var receiveEndpointContext = new SqsQueueReceiveEndpointContext(_host, _configuration, brokerTopology); receiveEndpointContext.GetOrAddPayload(() => deadLetterTransport); receiveEndpointContext.GetOrAddPayload(() => errorTransport); return(receiveEndpointContext); }
public SqsDeadLetterTransport(string destination, TransportSetHeaderAdapter <MessageAttributeValue> headerAdapter, IFilter <ClientContext> topologyFilter) : base(destination, topologyFilter) { _headerAdapter = headerAdapter; }