예제 #1
0
        protected virtual CorrelationData GenerateCorrelationData(IMessage requestMessage)
        {
            CorrelationData correlationData = null;

            if (CorrelationDataGenerator != null)
            {
                var messageId = requestMessage.Headers.Id;
                if (messageId == null)
                {
                    messageId = _no_id;
                }

                var userData = CorrelationDataGenerator.ProcessMessage(requestMessage);
                if (userData != null)
                {
                    correlationData = new CorrelationDataWrapper(messageId, userData, requestMessage);
                }
                else
                {
                    _logger?.LogDebug("'confirmCorrelationExpression' resolved to 'null'; no publisher confirm will be sent to the ack or nack channel");
                }
            }

            return(correlationData);
        }
예제 #2
0
        protected virtual CorrelationData GenerateCorrelationData(IMessage requestMessage)
        {
            CorrelationData correlationData = null;

            var messageId = requestMessage.Headers.Id ?? _no_id;

            if (CorrelationDataGenerator != null)
            {
                var userData = CorrelationDataGenerator.ProcessMessage(requestMessage);

                if (userData != null)
                {
                    correlationData = new CorrelationDataWrapper(messageId, userData, requestMessage);
                }
                else
                {
                    _logger?.LogDebug("'confirmCorrelationExpression' resolved to 'null'; no publisher confirm will be sent to the ack or nack channel");
                }
            }

            if (correlationData == null)
            {
                object correlation = requestMessage.Headers[RabbitMessageHeaders.PUBLISH_CONFIRM_CORRELATION];

                if (correlation is CorrelationData cdata)
                {
                    correlationData = cdata;
                }

                if (correlationData != null)
                {
                    correlationData = new CorrelationDataWrapper(messageId, correlationData, requestMessage);
                }
            }

            return(correlationData);
        }