public EmailBackedKeyValueStore(ILogger?logger, MimeMessage mimeMessage)
 {
     MessageAndId = new MimeMessageWithUniqueId
     {
         Message  = mimeMessage,
         UniqueId = UniqueId.Invalid
     };
     this.logger = logger?.ForContext <EmailBackedKeyValueStore>();
 }
        public EmailBackedKeyValueStore(ILogger logger, MimeMessageWithUniqueId?message, string?uniqueStoreName)
        {
            this.logger  = logger;
            MessageAndId = message ?? throw new ArgumentNullException(nameof(message));

            UniqueStoreName = uniqueStoreName;
            if (uniqueStoreName != null)
            {
#pragma warning disable CS8602 // Dereference of a possibly null reference.
                message.Value.Message.Headers["heu-uniquestorename"] = uniqueStoreName;
#pragma warning restore CS8602 // Dereference of a possibly null reference.
            }

#pragma warning disable CS8602 // Dereference of a possibly null reference.
#pragma warning disable CS8604 // Possible null reference argument.
            message.Value.Message.Subject = GetSubjectFromUniqueStoreName(UniqueStoreName);
#pragma warning restore CS8604 // Possible null reference argument.
#pragma warning restore CS8602 // Dereference of a possibly null reference.
        }
        public EmailBackedKeyValueStore(ILogger?logger, string messageId, string uniqueStoreName)
        {
            UniqueStoreName = uniqueStoreName;
            var m = new MimeMessageWithUniqueId();

            m.Message = new MimeMessage
            {
                MessageId = messageId.EnsureContentIdFormat(),
                Date      = new DateTime(2000, 01, 01),
                Subject   = GetSubjectFromUniqueStoreName(uniqueStoreName)
            };
            m.Message.From.Add(new MailboxAddress(Constants.AppName, Constants.AppFakeEmail));
            m.Message.To.Add(new MailboxAddress(Constants.AppName, Constants.AppFakeEmail));
            m.Message.Headers.Add("heu-uniquestorename", uniqueStoreName);
            m.UniqueId = UniqueId.Invalid;

            MessageAndId = m;
            this.logger  = logger;
        }