Example #1
0
        public List <T> Query <T>(QueryRequest request, int limit)
        {
            var to = new List <T>();

            if (request.Limit == default(int))
            {
                request.Limit = limit;
            }

            QueryResponse response = null;

            do
            {
                if (response != null)
                {
                    request.ExclusiveStartKey = response.LastEvaluatedKey;
                }

                response = Exec(() => DynamoDb.Query(request));
                var results = response.ConvertAll <T>();

                foreach (var result in results)
                {
                    to.Add(result);

                    if (to.Count >= limit)
                    {
                        break;
                    }
                }
            } while (!response.LastEvaluatedKey.IsEmpty() && to.Count < limit);

            return(to);
        }
        public DynamoDbResult <T> QueryPage <T>(QueryExpression <T> request, int limit, Dictionary <string, AttributeValue> lastEvaluatedKey = null)
        {
            var result = new DynamoDbResult <T>();

            request.Limit = limit;
            QueryResponse response = null;

            if (lastEvaluatedKey != null)
            {
                request.ExclusiveStartKey = lastEvaluatedKey;
            }
            response = Exec(() => DynamoDb.Query(request));
            var results = response.ConvertAll <T>();

            result.Data             = results;
            result.LastEvaluatedKey = response.LastEvaluatedKey;
            return(result);
        }