private async Task <Dictionary <Guid, Point> > ReadStorage(Dictionary <string, Tag> tags) { if (await _storageClient.ExistsAsync(_storagePath)) { var pointsString = await _storageClient.ReadAllAsync(_storagePath); var pointsDataContractList = pointsString == string.Empty ? new PointsStorageDataContract() : JsonConvert.DeserializeObject <PointsStorageDataContract>(pointsString); var duplicatePoints = pointsDataContractList .GroupBy(point => point.Id) .Where(g => g.Count() > 1); if (duplicatePoints.Any()) { throw new InvalidOperationException( $"Duplicate point ids in config: {string.Join(", ", duplicatePoints)}"); } return(pointsDataContractList.ToDictionary( point => point.Id, point => Point.FromDataContract(point, tags))); } else { return(new Dictionary <Guid, Point>()); } }
public async Task HandleAsync(FileContentMessage message) { var blobName = $"{message.SessionId}_{message.FileName}"; _log.LogInformation($"Process {nameof(FileContentMessage)} for blob '{blobName}'"); if (!(await _storageClient.ExistsAsync(blobName))) { _log.LogDebug($"Blob '{blobName}' not exists. Create or replace blob."); await _storageClient.CreateOrReplaceAsync(blobName); } _log.LogDebug($"Append content to '{blobName}'."); await _storageClient.AppendAsync(blobName, message.Content); }