public async Task <T> Find(object hashKey, object sortKey) { var key = Converter.ToPrimative(hashKey); var sort = Converter.ToPrimative(sortKey); var document = await Table.GetItemAsync(key, sort); return(document == null ? default(T) : Converter.FromDocument <T>(document)); }
private void AddQueryFilterCondition(string name, QueryOperator operation, IEnumerable <object> values) { Primitive primitiveValue = null; DynamoDBEntry[] primitiveValues = null; if (values != null) { var valuesArray = values.ToArray(); if (valuesArray.Length == 1) { primitiveValue = converter.ToPrimative(valuesArray.First()); } else { primitiveValues = valuesArray.Select(v => (DynamoDBEntry)converter.ToPrimative(v)).ToArray(); } } if (queryOperation == null) { if (!IsKeyField(name)) { throw new ApplicationException("The first Filter must be a key field"); } queryOperation = new QueryOperationConfig(); if (indexName != null) { queryOperation.IndexName = indexName; if (indexAttributes != null) { queryOperation.Select = SelectValues.SpecificAttributes; queryOperation.AttributesToGet = indexAttributes; } } if (primitiveValue != null) { queryOperation.Filter = new QueryFilter(name, operation, primitiveValue); } else if (primitiveValues != null) { queryOperation.Filter = new QueryFilter(name, operation, primitiveValues); } } else { if (primitiveValue != null) { queryOperation.Filter.AddCondition(name, operation, primitiveValue); } else if (primitiveValues != null) { queryOperation.Filter.AddCondition(name, operation, primitiveValues); } } }