private static void ProcessEntities(CloudTable table, Action<IEnumerable<DynamicTableEntity>> processor, Expression<Func<DynamicTableEntity, bool>> filters) { TableQuerySegment<DynamicTableEntity> segment = null; while (segment == null || segment.ContinuationToken != null) { if (filters == null) { segment = table.ExecuteQuerySegmented(new TableQuery().Take(100), segment == null ? null : segment.ContinuationToken); } else { var query = table.CreateQuery<DynamicTableEntity>().Where(filters).Take(100).AsTableQuery(); segment = query.ExecuteSegmented(segment == null ? null : segment.ContinuationToken); } processor(segment.Results); } }
private async Task<bool> ObtainUserSubscriptionEntities( CloudTable userSubscriptionsTable, Expression<Func<UserSubscriptionEntity, bool>> filter, Action<IEnumerable<UserSubscriptionEntity>> processor) { TableQuerySegment<UserSubscriptionEntity> segment = null; while (segment == null || segment.ContinuationToken != null) { var query = userSubscriptionsTable .CreateQuery<UserSubscriptionEntity>() .Where(filter) .AsTableQuery(); segment = await query.ExecuteSegmentedAsync(segment == null ? null : segment.ContinuationToken); processor(segment.Results); } return true; }
private async Task<bool> ObtainBlobCommentEntities( CloudTable imageBlobsTable, Expression<Func<ImageBlobCommentEntity, bool>> filter, Action<IEnumerable<ImageBlobCommentEntity>> processor) { TableQuerySegment<ImageBlobCommentEntity> segment = null; while (segment == null || segment.ContinuationToken != null) { var query = imageBlobsTable .CreateQuery<ImageBlobCommentEntity>() .Where(filter) .Take(LIMIT_OF_ITEMS_TO_TAKE) .AsTableQuery(); segment = await query.ExecuteSegmentedAsync(segment == null ? null : segment.ContinuationToken); processor(segment.Results); } return true; }