using System; using System.Collections.Generic; using Tapeti.Config; namespace Tapeti.Default { /// /// /// IMessagePropertiesReader implementation for providing properties manually /// public class MessageProperties : IMessageProperties { private readonly Dictionary headers = new(); /// public string ContentType { get; set; } /// public string CorrelationId { get; set; } /// public string ReplyTo { get; set; } /// public bool? Persistent { get; set; } /// public DateTime? Timestamp { get; set; } /// /// public MessageProperties() { } /// /// public MessageProperties(IMessageProperties source) { if (source == null) return; ContentType = source.ContentType; CorrelationId = source.CorrelationId; ReplyTo = source.ReplyTo; Persistent = source.Persistent; Timestamp = source.Timestamp; headers.Clear(); foreach (var pair in source.GetHeaders()) SetHeader(pair.Key, pair.Value); } /// public void SetHeader(string name, string value) { if (headers.ContainsKey(name)) headers[name] = value; else headers.Add(name, value); } /// public string GetHeader(string name) { return headers.TryGetValue(name, out var value) ? value : null; } /// public IEnumerable> GetHeaders() { return headers; } } }