/// <summary> /// Called after the message is sent to the transport (and confirmed by the transport if supported) /// </summary> /// <typeparam name="T"> /// The message type /// </typeparam> /// <param name="context"> /// The message send context /// </param> public Task PostSend <T>(SendContext <T> context) where T : class { context.TryGetPayload <IMessageDiagnostics>(out var payload); _messageCaptureContext.HandleEvent(TelemetryEventType.PostSend, context.MessageId, (IMessageDiagnostics)context.Message); return(Task.CompletedTask); }
/// <summary> /// Called before the consumer's Consume method is called /// </summary> /// <typeparam name="T"> /// </typeparam> /// <param name="context"> /// </param> public Task PreConsume <T>(ConsumeContext <T> context) where T : class { _messageCaptureContext.HandleEvent( TelemetryEventType.PreConsume, context.MessageId, (IMessageDiagnostics)context.Message ); return(Task.CompletedTask); }
/// <summary> /// Called when the message was consumed, once for each consumer /// </summary> /// <param name="context"> /// </param> public Task PostReceive(ReceiveContext context) { var consumeContext = _deserializer.Deserialize(context); consumeContext.TryGetMessage <IMessageDiagnostics>(out var messageContext); _messageCaptureContext.HandleEvent( TelemetryEventType.PostReceive, messageContext.MessageId, messageContext.Message ); return(Task.CompletedTask); }