Azure AppendBlob's property AppendBlobCommittedBlockCount is coming as null
<p>I'm writing (using .NET) into an azure AppendBlob, and I would like to check before I append anything to it if I have reached the maximun number of blocks that I am allowed to append. <a href="https://azure.microsoft.com/en-gb/documentation/articles/storage-dotnet-how-to-use-blobs/" rel="nofollow">I have read</a> that limit is 50k so I will use that number. For that I was trying this</p>

<pre><code>public async Task ProcessEventsAsync(PartitionContext context, IEnumerable&lt;EventData&gt; messages)
{
    foreach (var message in messages)
    {
        try
        {
            if (_appendBlob.Properties.AppendBlobCommittedBlockCount == _maximumBlockNumberPerBlob)
            {
                CreateBlob(null);
            }
            ProcessMessage(message);
        }
        catch (Exception ex)
        {
            _log.Error("Failed Processing Message", ex);
        }
    }

    await context.CheckpointAsync();
}
</code></pre>

<p>But the AppendBlobCommittedBlockCount is coming as null always and the CreateBlob method just creates a new blob (it takes that fishy null argument as I am using the <a href="https://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.110).aspx" rel="nofollow">Timer class</a> to call it as well). Any ideas why that happens or how could I check it if this is not the way?</p>

<p>Thanks</p>

<p>UPDATE:</p>

<p>The method CreateBlob is as follow:</p>

<pre><code>public void CreateBlob(object _)
{
    var storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageAccount"));
    var appendBlobReference = CloudConfigurationManager.GetSetting("appendBlobReference");
    var blobClient = storageAccount.CreateCloudBlobClient();
    var currentDate = DateTime.UtcNow;
    var container = blobClient.GetContainerReferenc("testContainer");
    container.CreateIfNotExists();
    _appendBlob = container.GetAppendBlobReference($"{folderName}/{appendBlobReference}-{currentDate.ToString("yyyyMMddHHmm")}");
    _appendBlob.CreateOrReplace();
}
</code></pre>

<p>Being _appendBlob a private Field and folderName and appendBlobReference just strings</p>

<p>All these methods are inside a class that implements <a href="https://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.110).aspx" rel="nofollow">IEventProcessor</a> as it's for fetching eventsfrom EventHubs, so basically the Task ProcessEvenstAsync is called when there is something new in the stream.</p>

<p>As well, the first time I call the CreateBlob is inside the constructor of that class that implements IEventProcessor using a timer (as I will create a new one every 15 minutes independently of if it's full or no). This bit works</p>

<pre><code>_timer = new Timer(CreateBlob, null, TimeSpan.FromMilliseconds(0), TimeSpan.FromMinutes(int.Parse(CloudConfigurationManager.GetSetting("updateBlobNameIntervalInMinutes"))));
</code></pre>

<p>And the creation </p>