public PutPointResult(PutItemResult putItemResult) { if (putItemResult == null) { throw new ArgumentNullException("putItemResult"); } PutItemResult = putItemResult; }
public async Task <PutPointResult> PutPointAsync(PutPointRequest putPointRequest, CancellationToken cancellationToken = default(CancellationToken)) { if (putPointRequest == null) { throw new ArgumentNullException("putPointRequest"); } var geohash = S2Manager.GenerateGeohash(putPointRequest.GeoPoint); var hashKey = S2Manager.GenerateHashKey(geohash, _config.HashKeyLength); var geoJson = GeoJsonMapper.StringFromGeoObject(putPointRequest.GeoPoint); var putItemRequest = putPointRequest.PutItemRequest; putItemRequest.TableName = _config.TableName; var hashKeyValue = new AttributeValue { N = hashKey.ToString(CultureInfo.InvariantCulture) }; putItemRequest.Item[_config.HashKeyAttributeName] = hashKeyValue; putItemRequest.Item[_config.RangeKeyAttributeName] = putPointRequest.RangeKeyValue; var geohashValue = new AttributeValue { N = geohash.ToString(CultureInfo.InvariantCulture) }; putItemRequest.Item[_config.GeohashAttributeName] = geohashValue; var geoJsonValue = new AttributeValue { S = geoJson }; putItemRequest.Item[_config.GeoJsonAttributeName] = geoJsonValue; PutItemResult putItemResult = await _config.DynamoDBClient.PutItemAsync(putItemRequest, cancellationToken).ConfigureAwait(false); var putPointResult = new PutPointResult(putItemResult); return(putPointResult); }