コード例 #1
0
ファイル: ApiController.cs プロジェクト: Emettant/hutel
        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>());
            }
        }
コード例 #2
0
        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);
        }