Пример #1
0
        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>());
            }
        }