/// <summary> /// Create a new engine. /// </summary> /// <param name="connectionString">The Azure blob storage connection string.</param> /// <param name="serializer">The serializer to use.</param> /// <param name="options">Options for the Azure blob storage.</param> public AzureBlobPersistenceEngine(string connectionString, ISerialize serializer, AzureBlobPersistenceOptions options = null) { if (String.IsNullOrEmpty(connectionString)) { throw new ArgumentException("connectionString cannot be null or empty"); } if (serializer == null) { throw new ArgumentNullException("serializer"); } if (options == null) { throw new ArgumentNullException("options"); } _serializer = serializer; _options = options; _connectionString = connectionString; var storageAccount = CloudStorageAccount.Parse(connectionString); _blobClient = storageAccount.CreateCloudBlobClient(); _checkpointTableClient = storageAccount.CreateCloudTableClient(); _primaryContainer = _blobClient.GetContainerReference(GetContainerName()); }
/// <summary> /// Create a new wireup. /// </summary> /// <param name="inner">The wireup to be used.</param> /// <param name="connectionString">The Azure blob storage connection string.</param> /// <param name="persistenceOptions">Options for the Azure blob storage.</param> public AzureBlobPersistenceWireup(Wireup inner, string connectionString, AzureBlobPersistenceOptions persistenceOptions) : base(inner) { Logger.Debug("Configuring Azure blob persistence engine."); var options = Container.Resolve <TransactionScopeOption>(); if (options != TransactionScopeOption.Suppress) { Logger.Warn(Messages.TransactionScopeNotSupportedSettingIgnored); } Container.Register(c => new AzureBlobPersistenceFactory(connectionString, c.Resolve <ISerialize>(), persistenceOptions).Build()); }
/// <summary> /// Creates a new factory. /// </summary> /// <param name="connectionString">The Azure blob storage connection string.</param> /// <param name="serializer">The serializer to use.</param> /// <param name="options">Options for the Azure blob storage.</param> public AzureBlobPersistenceFactory(string connectionString, ISerialize serializer, AzureBlobPersistenceOptions options = null) { _connectionString = connectionString; _serializer = serializer; _options = options ?? new AzureBlobPersistenceOptions(); }