Platform.StreamStorage.Azure.AzureEventStore.OpenExistingForWriting C# (CSharp) 메소드

OpenExistingForWriting() 공개 정적인 메소드

public static OpenExistingForWriting ( AzureStoreConfiguration config, EventStoreId container ) : AzureEventStore
config AzureStoreConfiguration
container EventStoreId
리턴 AzureEventStore
        public static AzureEventStore OpenExistingForWriting(AzureStoreConfiguration config, EventStoreId container)
        {
            var blob = config.GetPageBlob(container.Name + "/stream.dat");
            var check = AzureEventPointer.OpenWriteable(blob);
            var offset = check.Read();
            var length = blob.Properties.Length;
            var store = AzureEventStoreChunk.OpenExistingForWriting(blob, offset, length);
            return new AzureEventStore(container, store, check);
        }

Usage Example

        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));
                }
            }
        }