Example #1
0
        public virtual Pageable <IDictionary <string, object> > Query(string select = null, string filter = null, int?top = null, CancellationToken cancellationToken = default)
        {
            return(PageableHelpers.CreateEnumerable(_ =>
            {
                var response = _tableOperations.QueryEntities(_table,
                                                              queryOptions: new QueryOptions()
                {
                    Format = _format, Top = top, Filter = filter, Select = @select
                },
                                                              cancellationToken: cancellationToken);

                response.Value.Value.CastAndRemoveAnnotations();

                return Page.FromValues(
                    response.Value.Value,
                    CreateContinuationTokenFromHeaders(response.Headers),
                    response.GetRawResponse());
            }, (continuationToken, _) =>
            {
                var(NextPartitionKey, NextRowKey) = ParseContinuationToken(continuationToken);

                var response = _tableOperations.QueryEntities(
                    _table,
                    queryOptions: new QueryOptions()
                {
                    Format = _format, Top = top, Filter = filter, Select = @select
                },
                    nextPartitionKey: NextPartitionKey,
                    nextRowKey: NextRowKey,
                    cancellationToken: cancellationToken);

                response.Value.Value.CastAndRemoveAnnotations();

                return Page.FromValues(response.Value.Value,
                                       CreateContinuationTokenFromHeaders(response.Headers),
                                       response.GetRawResponse());
            }));
        }