/// <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);
        }
Пример #2
0
        /// <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);
        }