コード例 #1
0
ファイル: AmqpPropertyBuilder.cs プロジェクト: lulzzz/Kontur
        public IAmqpProperties BuildPropertiesFromHeaders(IReadOnlyDictionary <string, string> headers)
        {
            var properties = new AmqpProperties();

            properties.ContentEncoding = GetHeaderOrNull(headers, ContentEncoding);
            properties.ContentType     = GetHeaderOrNull(headers, ContentType);
            properties.CorrelationId   = GetHeaderOrNull(headers, CorrelationId);
            properties.MessageId       = GetHeaderOrNull(headers, MessageId);
            properties.Persistent      = bool.TryParse(GetHeaderOrNull(headers, Persistent), out bool result);
            properties.ReplyTo         = GetHeaderOrNull(headers, ReplyTo);

            var presetHeaders = new List <string> {
                ContentEncoding,
                ContentType,
                CorrelationId,
                MessageId,
                Persistent,
                ReplyTo
            };

            properties.Headers =
                headers
                .Where(kv => !presetHeaders.Contains(kv.Key))
                .ToDictionary(kv => kv.Key, kv => kv.Value);

            return(properties);
        }
コード例 #2
0
ファイル: AmqpPropertyBuilder.cs プロジェクト: lulzzz/Kontur
        public IAmqpProperties BuildPropertiesFromProperties(IBasicProperties basicProperties)
        {
            var properties = new AmqpProperties();

            properties.ContentEncoding = basicProperties.ContentEncoding;
            properties.ContentType     = basicProperties.ContentType;
            properties.CorrelationId   = basicProperties.CorrelationId;
            properties.MessageId       = basicProperties.MessageId;
            properties.Persistent      = basicProperties.Persistent;
            properties.ReplyTo         = basicProperties.ReplyTo;
            properties.Headers         = basicProperties.Headers.ToDictionary(kv => kv.Key, kv => kv.Value.ToString());

            return(properties);
        }