Пример #1
0
 /// <summary>Constructor to create new configuration object.</summary>
 /// <param name="connectionStringProvider">Provider to retrieve connection string such as <see cref="PlainTextConnectionStringProvider"/></param>
 /// <param name="containerName">Storage container name</param>
 /// <param name="messagePropertyToIdentifyAttachmentBlob">Message user property to use for blob URI</param>
 /// <param name="messageMaxSizeReachedCriteria">Default is always use attachments</param>
 public AzureStorageAttachmentConfiguration(
     IProvideStorageConnectionString connectionStringProvider,
     string containerName = "attachments",
     string messagePropertyToIdentifyAttachmentBlob     = "$attachment.blob",
     Func <Message, bool> messageMaxSizeReachedCriteria = null)
 {
     Guard.AgainstEmpty(nameof(containerName), containerName);
     Guard.AgainstEmpty(nameof(messagePropertyToIdentifyAttachmentBlob), messagePropertyToIdentifyAttachmentBlob);
     ConnectionStringProvider = connectionStringProvider;
     ContainerName            = containerName;
     MessagePropertyToIdentifyAttachmentBlob = messagePropertyToIdentifyAttachmentBlob;
     MessageMaxSizeReachedCriteria           = GetMessageMaxSizeReachedCriteria(messageMaxSizeReachedCriteria);
 }
Пример #2
0
        /// <summary>Constructor to create new configuration object.</summary>
        /// <param name="connectionStringProvider">Provider to retrieve connection string such as <see cref="PlainTextConnectionStringProvider"/></param>
        /// <param name="containerName">Storage container name</param>
        /// <param name="messagePropertyToIdentifyAttachmentBlob">Message user property to use for blob URI</param>
        /// <param name="messageMaxSizeReachedCriteria">Default is always use attachments</param>
        public AzureStorageAttachmentConfiguration(
            IProvideStorageConnectionString connectionStringProvider,
            string containerName = "attachments",
            string messagePropertyToIdentifyAttachmentBlob     = "$attachment.blob",
            Func <Message, bool>?messageMaxSizeReachedCriteria = default)
        {
            Guard.AgainstNull(nameof(connectionStringProvider), connectionStringProvider);
            Guard.AgainstEmpty(nameof(containerName), containerName);
            Guard.AgainstEmpty(nameof(messagePropertyToIdentifyAttachmentBlob), messagePropertyToIdentifyAttachmentBlob);

            var connectionString = connectionStringProvider.GetConnectionString().GetAwaiter().GetResult();
            var account          = CloudStorageAccount.Parse(connectionString);

            ConnectionStringProvider = connectionStringProvider;
            StorageCredentials       = account.Credentials;
            BlobEndpoint             = EnsureBlobEndpointEndsWithSlash(account.BlobEndpoint.ToString());
            ContainerName            = containerName;
            MessagePropertyToIdentifyAttachmentBlob = messagePropertyToIdentifyAttachmentBlob;
            MessageMaxSizeReachedCriteria           = GetMessageMaxSizeReachedCriteria(messageMaxSizeReachedCriteria);
        }