private async Task<CloudAppendBlob> GetBlobAsync(DateTime eventTime) { string tagName = eventTime.ToString("yyyy-MM-dd"); if (tagName != _currentTagName) { _currentTagName = tagName; _appendBlob = _blobContainer.GetAppendBlobReference($"{_blobNamePrefix}{_currentTagName}.txt"); if (!(await _appendBlob.ExistsAsync())) { await _appendBlob.CreateOrReplaceAsync(); } } return _appendBlob; }
private static async Task<List<FileRecord>> ReadStreamToRecords(CloudAppendBlob blob) { List<FileRecord> records = new List<FileRecord>(); using (var s = new MemoryStream()) { if (!await blob.ExistsAsync()) { return records; } await blob.DownloadRangeToStreamAsync(s, 0, blob.Properties.Length); s.Position = 0; var reader = new BinaryReader(s); var record = new FileRecord(); while (record.ReadContentFromStream(reader)) { records.Add(record); record = new FileRecord(); } } return records; }