public Task Send(ExceptionReceiveContext context) { void PreSend(SendMessageRequest sendMessageRequest, IDictionary <string, MessageAttributeValue> headers) { _headerAdapter.SetExceptionHeaders(headers, context); } return(Move(context, PreSend)); }
public Task Send(ExceptionReceiveContext context) { void PreSend(SendMessageRequest sendMessageRequest, SendHeaders headers) { headers.SetExceptionHeaders(context.Exception, context.ExceptionTimestamp); } return(Move(context, PreSend)); }
public Task Send(ExceptionReceiveContext context) { void PreSend(InMemoryTransportMessage message, IDictionary <string, object> headers) { headers.SetExceptionHeaders(context); } return(Move(context, PreSend)); }
public Task Send(ExceptionReceiveContext context) { void PreSend(InMemoryTransportMessage message, SendHeaders headers) { headers.SetExceptionHeaders(context.Exception, context.ExceptionTimestamp); } return(Move(context, PreSend)); }
public Task Send(ExceptionReceiveContext context) { void PreSend(Message message, IDictionary <string, object> headers) { headers.SetExceptionHeaders(context); message.TimeToLive = Defaults.BasicMessageTimeToLive; } return(Move(context, PreSend)); }
public Task Send(ExceptionReceiveContext context) { void PreSend(Message message, SendHeaders headers) { headers.SetExceptionHeaders(context.Exception, context.ExceptionTimestamp); message.TimeToLive = Defaults.BasicMessageTimeToLive; } return(Move(context, PreSend)); }
public Task Send(ExceptionReceiveContext context) { void PreSend(IBasicProperties message, SendHeaders headers) { headers.SetExceptionHeaders(context); message.ClearExpiration(); } return(Move(context, PreSend)); }
/// <summary> /// Set the host headers on the SendContext (for error, dead-letter, etc.) /// </summary> /// <param name="headers"></param> /// <param name="exceptionContext"></param> public static void SetExceptionHeaders(this SendHeaders headers, ExceptionReceiveContext exceptionContext) { var exception = exceptionContext.Exception.GetBaseException() ?? exceptionContext.Exception; var exceptionMessage = ExceptionUtil.GetMessage(exception); headers.Set(MessageHeaders.Reason, "fault"); headers.Set(MessageHeaders.FaultExceptionType, TypeMetadataCache.GetShortName(exception.GetType())); headers.Set(MessageHeaders.FaultMessage, exceptionMessage); headers.Set(MessageHeaders.FaultTimestamp, exceptionContext.ExceptionTimestamp.ToString("O")); headers.Set(MessageHeaders.FaultStackTrace, ExceptionUtil.GetStackTrace(exception)); if (exceptionContext.TryGetPayload(out ConsumerFaultInfo info)) { headers.Set(MessageHeaders.FaultConsumerType, info.ConsumerType); headers.Set(MessageHeaders.FaultMessageType, info.MessageType); } }
public static void SetExceptionHeaders(this IDictionary <string, object> dictionary, ExceptionReceiveContext exceptionContext) { _adapter.SetExceptionHeaders(dictionary, exceptionContext); }
/// <summary> /// Set the host headers on the SendContext (for error, dead-letter, etc.) /// </summary> /// <param name="adapter"></param> /// <param name="headers"></param> /// <param name="exceptionContext"></param> public static void SetExceptionHeaders <T>(this ITransportSetHeaderAdapter <T> adapter, IDictionary <string, T> headers, ExceptionReceiveContext exceptionContext) { var exception = exceptionContext.Exception.GetBaseException() ?? exceptionContext.Exception; var exceptionMessage = ExceptionUtil.GetMessage(exception); adapter.Set(headers, MessageHeaders.Reason, "fault"); adapter.Set(headers, MessageHeaders.FaultExceptionType, TypeMetadataCache.GetShortName(exception.GetType())); adapter.Set(headers, MessageHeaders.FaultMessage, exceptionMessage); adapter.Set(headers, MessageHeaders.FaultTimestamp, exceptionContext.ExceptionTimestamp); adapter.Set(headers, MessageHeaders.FaultStackTrace, ExceptionUtil.GetStackTrace(exception)); if (exceptionContext.TryGetPayload(out ConsumerFaultInfo info)) { adapter.Set(headers, MessageHeaders.FaultConsumerType, info.ConsumerType); adapter.Set(headers, MessageHeaders.FaultMessageType, info.MessageType); } if (exceptionContext.TryGetPayload(out RetryContext retryContext) && retryContext.RetryCount > 0) { adapter.Set(headers, MessageHeaders.FaultRetryCount, retryContext.RetryCount); } }