public AzureEventStoreManager(AzureStoreConfiguration config) { _config = config; var account = CloudStorageAccount.Parse(config.ConnectionString); var client = account.CreateCloudBlobClient(); var rootAzureContainer = client.GetContainerReference(config.RootBlobContainerName); rootAzureContainer.CreateIfNotExist(); foreach (var blob in rootAzureContainer.ListBlobs()) { var dir = blob as CloudBlobDirectory; if (dir == null) { continue; } EventStoreId container; if (AzureEventStore.TryGetContainerName(_config, dir, out container)) { var value = AzureEventStore.OpenExistingForWriting(config, container); _stores.Add(container.Name, value); } else { Log.Info("Skipping invalid folder {0}", rootAzureContainer.Uri.MakeRelativeUri(dir.Uri)); } } }
public void AppendEventsToStore(EventStoreId storeId, string streamId, IEnumerable <byte[]> eventData) { AzureEventStore store; if (!_stores.TryGetValue(storeId.Name, out store)) { store = AzureEventStore.CreateNewForWriting(_config, storeId); _stores.Add(storeId.Name, store); } store.Write(streamId, eventData); }