public void TableContinuationTokenVerifyXmlFunctions() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); TableContinuationToken token = null; do { segment = tableClient.ListTablesSegmented("prefixtable", 5, segment != null ? segment.ContinuationToken : null); totalResults.AddRange(segment); token = segment.ContinuationToken; if (token != null) { Assert.AreEqual(null, token.GetSchema()); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; StringBuilder sb = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(sb, settings)) { token.WriteXml(writer); } using (XmlReader reader = XmlReader.Create(new StringReader(sb.ToString()))) { token = new TableContinuationToken(); token.ReadXml(reader); } } }while (token != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables("prefixtable").Count()); }
public void ListTablesSegmentedBasicAPM() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); do { using (ManualResetEvent evt = new ManualResetEvent(false)) { IAsyncResult asyncRes = tableClient.BeginListTablesSegmented(segment != null ? segment.ContinuationToken : null, (res) => { evt.Set(); }, null); evt.WaitOne(); segment = tableClient.EndListTablesSegmented(asyncRes); } totalResults.AddRange(segment); }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); }
public IAsyncOperation <TableResultSegment> ListTablesSegmentedAsync(string prefix, int?maxResults, TableContinuationToken currentToken, TableRequestOptions requestOptions, OperationContext operationContext) #endif { requestOptions = TableRequestOptions.ApplyDefaults(requestOptions, this); operationContext = operationContext ?? new OperationContext(); TableQuery query = this.GenerateListTablesQuery(prefix, maxResults); #if ASPNET_K || PORTABLE return(Task.Run(async() => { TableQuerySegment seg = await this.ExecuteQuerySegmentedAsync(TableConstants.TableServiceTablesName, query, currentToken, requestOptions, operationContext, cancellationToken); #else return AsyncInfo.Run(async(cancellationToken) => { TableQuerySegment seg = await this.ExecuteQuerySegmentedAsync(TableConstants.TableServiceTablesName, query, currentToken, requestOptions, operationContext).AsTask(cancellationToken); #endif TableResultSegment retSegment = new TableResultSegment(seg.Results.Select(tbl => new CloudTable(tbl.Properties[TableConstants.TableName].StringValue, this)).ToList()); retSegment.ContinuationToken = seg.ContinuationToken; return retSegment; #if ASPNET_K || PORTABLE }, cancellationToken)); #else }); #endif }
public void ListTablesSegmentedPrefixMaxResultsTokenRequestOptionsOperationContextCancellationTokenTask() { CloudTableClient tableClient = GenerateCloudTableClient(); string prefix = prefixTablesPrefix; int?maxResults = 10; TableContinuationToken token = null; TableRequestOptions requestOptions = new TableRequestOptions(); OperationContext operationContext = new OperationContext(); CancellationToken cancellationToken = CancellationToken.None; int totalCount = 0; do { TableResultSegment resultSegment = tableClient.ListTablesSegmentedAsync(prefix, maxResults, token, requestOptions, operationContext, cancellationToken).Result; token = resultSegment.ContinuationToken; int count = 0; foreach (CloudTable table in resultSegment) { Assert.IsTrue(table.Name.StartsWith(prefix)); ++count; } totalCount += count; Assert.IsTrue(count <= maxResults.Value); }while (token != null); Assert.AreEqual(20, totalCount); }
private async Task DoListTablesSegmentedWithPrefixAsync(TablePayloadFormat payloadFormat) { CloudTableClient tableClient = GenerateCloudTableClient(); tableClient.DefaultRequestOptions.PayloadFormat = payloadFormat; TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); int segCount = 0; do { segment = await tableClient.ListTablesSegmentedAsync(prefixTablesPrefix, null, segment != null?segment.ContinuationToken : null, null, null); totalResults.AddRange(segment); segCount++; }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, 20); foreach (CloudTable tbl in totalResults) { Assert.IsTrue(tbl.Name.StartsWith(prefixTablesPrefix)); } }
public void ListTablesSegmentedTokenTask() { CloudTableClient tableClient = GenerateCloudTableClient(); TableContinuationToken token = null; do { TableResultSegment resultSegment = tableClient.ListTablesSegmentedAsync(token).Result; token = resultSegment.ContinuationToken; }while (token != null); }
public virtual async Task <TableResultSegment> ListTablesSegmentedAsync(string prefix, int?maxResults, TableContinuationToken currentToken, TableRequestOptions requestOptions, OperationContext operationContext, CancellationToken cancellationToken) { requestOptions = TableRequestOptions.ApplyDefaults(requestOptions, this); operationContext = operationContext ?? new OperationContext(); TableQuery query = this.GenerateListTablesQuery(prefix, maxResults); TableQuerySegment seg = await this.ExecuteQuerySegmentedAsync(TableConstants.TableServiceTablesName, query, currentToken, requestOptions, operationContext, cancellationToken).ConfigureAwait(false); TableResultSegment retSegment = new TableResultSegment(seg.Results.Select(tbl => new CloudTable(tbl.Properties[TableConstants.TableName].StringValue, this)).ToList()); retSegment.ContinuationToken = seg.ContinuationToken; return(retSegment); }
public void ListTablesSegmentedBasicSync() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); do { segment = tableClient.ListTablesSegmented(segment != null ? segment.ContinuationToken : null); totalResults.AddRange(segment); }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); }
public TableResultSegment EndListTablesSegmented(IAsyncResult asyncResult) { ResultSegment <DynamicTableEntity> res = Executor.EndExecuteAsync <ResultSegment <DynamicTableEntity> >(asyncResult); List <CloudTable> tables = res.Results.Select(tbl => new CloudTable( NavigationHelper.AppendPathToUri(this.BaseUri, tbl.Properties[TableConstants.TableName].StringValue), this)).ToList(); TableResultSegment retSeg = new TableResultSegment(tables) { ContinuationToken = res.ContinuationToken as TableContinuationToken }; return(retSeg); }
/// <summary> /// Ends an asynchronous operation to return a result segment of tables. /// </summary> /// <param name="asyncResult">An <see cref="IAsyncResult"/> that references the pending asynchronous operation.</param> /// <returns>A <see cref="TableResultSegment"/> object.</returns> public TableResultSegment EndListTablesSegmented(IAsyncResult asyncResult) { TableQuerySegment <DynamicTableEntity> res = Executor.EndExecuteAsync <TableQuerySegment <DynamicTableEntity> >(asyncResult); List <CloudTable> tables = res.Results.Select(tbl => new CloudTable( tbl.Properties[TableConstants.TableName].StringValue, this)).ToList(); TableResultSegment retSeg = new TableResultSegment(tables) { ContinuationToken = res.ContinuationToken }; return(retSeg); }
public async Task ListTablesSegmentedBasicAsync() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); do { segment = await tableClient.ListTablesSegmentedAsync(segment != null?segment.ContinuationToken : null, CancellationToken.None); totalResults.AddRange(segment); }while (segment.ContinuationToken != null); // Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); }
private async Task DoListTablesSegmentedBasicAsync(TablePayloadFormat format) { CloudTableClient tableClient = GenerateCloudTableClient(); tableClient.DefaultRequestOptions.PayloadFormat = format; TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); do { segment = await tableClient.ListTablesSegmentedAsync(segment != null?segment.ContinuationToken : null, CancellationToken.None); totalResults.AddRange(segment); }while (segment.ContinuationToken != null); // Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); }
private void DoListTablesSegmentedBasicSync(TablePayloadFormat format) { CloudTableClient tableClient = GenerateCloudTableClient(); tableClient.PayloadFormat = format; TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); do { segment = tableClient.ListTablesSegmented(segment != null ? segment.ContinuationToken : null); totalResults.AddRange(segment); }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); }
public TableResultSegment ListTablesSegmented(string prefix, int?maxResults, TableContinuationToken currentToken, TableRequestOptions requestOptions = null, OperationContext operationContext = null) { requestOptions = TableRequestOptions.ApplyDefaults(requestOptions, this); operationContext = operationContext ?? new OperationContext(); TableQuerySegment <DynamicTableEntity> res = CloudTableClient.GenerateListTablesQuery(prefix, maxResults).ExecuteQuerySegmentedInternal(currentToken, this, TableConstants.TableServiceTablesName, requestOptions, operationContext); List <CloudTable> tables = res.Results.Select(tbl => new CloudTable( tbl.Properties[TableConstants.TableName].StringValue, this)).ToList(); TableResultSegment retSeg = new TableResultSegment(tables) { ContinuationToken = res.ContinuationToken as TableContinuationToken }; return(retSeg); }
public async Task CloudTableClientListTablesSegmentedSharedKeyLite() { CloudTableClient tableClient = GenerateCloudTableClient(); tableClient.AuthenticationScheme = AuthenticationScheme.SharedKeyLite; TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); do { segment = await tableClient.ListTablesSegmentedAsync(segment != null?segment.ContinuationToken : null); totalResults.AddRange(segment); }while (segment.ContinuationToken != null); Assert.IsTrue(totalResults.Count > 0); }
private async Task DoCloudTableClientListTablesSegmentedSharedKeyLiteAsync(TablePayloadFormat payloadFormat) { CloudTableClient tableClient = GenerateCloudTableClient(); tableClient.DefaultRequestOptions.PayloadFormat = payloadFormat; tableClient.AuthenticationScheme = AuthenticationScheme.SharedKeyLite; TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); do { segment = await tableClient.ListTablesSegmentedAsync(segment != null?segment.ContinuationToken : null); totalResults.AddRange(segment); }while (segment.ContinuationToken != null); Assert.IsTrue(totalResults.Count > 0); }
public void ListTablesSegmentedMaxResultsSync() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); int segCount = 0; do { segment = tableClient.ListTablesSegmented(string.Empty, 10, segment != null ? segment.ContinuationToken : null, null, null); totalResults.AddRange(segment); segCount++; }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); Assert.IsTrue(segCount >= totalResults.Count / 10); }
private void DoListTablesSegmentedMaxResultsSync(TablePayloadFormat format) { CloudTableClient tableClient = GenerateCloudTableClient(); tableClient.DefaultRequestOptions.PayloadFormat = format; TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); int segCount = 0; do { segment = tableClient.ListTablesSegmented(string.Empty, 10, segment != null ? segment.ContinuationToken : null, null, null); totalResults.AddRange(segment); segCount++; }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); Assert.IsTrue(segCount >= totalResults.Count / 10); }
/// <summary> /// Returns a result segment containing a collection of tables beginning with the specified prefix. /// </summary> /// <param name="prefix">The table name prefix.</param> /// <param name="maxResults">A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the /// per-operation limit of 5000. If this value is <c>null</c> the maximum possible number of results will be returned, up to 5000.</param> /// <param name="currentToken">A <see cref="TableContinuationToken"/> token returned by a previous listing operation.</param> /// <param name="requestOptions">A <see cref="TableRequestOptions"/> object that specifies any additional options for the request.</param> /// <param name="operationContext">An <see cref="OperationContext"/> object that provides information on how the operation executed.</param> /// <returns>The result segment containing the collection of tables.</returns> public IAsyncOperation <TableResultSegment> ListTablesSegmentedAsync( string prefix, int?maxResults, TableContinuationToken currentToken, TableRequestOptions requestOptions, OperationContext operationContext) { requestOptions = TableRequestOptions.ApplyDefaults(requestOptions, this); operationContext = operationContext ?? new OperationContext(); TableQuery query = this.GenerateListTablesQuery(prefix, maxResults); return(AsyncInfo.Run(async(cancellationToken) => { TableQuerySegment seg = await this.ExecuteQuerySegmentedAsync(TableConstants.TableServiceTablesName, query, currentToken, requestOptions, operationContext).AsTask(cancellationToken); TableResultSegment retSegment = new TableResultSegment(seg.Results.Select(tbl => new CloudTable(NavigationHelper.AppendPathToUri(this.BaseUri, tbl.Properties[TableConstants.TableName].StringValue), this)).ToList()); retSegment.ContinuationToken = seg.ContinuationToken as TableContinuationToken; return retSegment; })); }
public void ListTablesSegmentedPrefixTokenTask() { CloudTableClient tableClient = GenerateCloudTableClient(); string prefix = prefixTablesPrefix; TableContinuationToken token = null; int totalCount = 0; do { TableResultSegment resultSegment = tableClient.ListTablesSegmentedAsync(prefix, token).Result; token = resultSegment.ContinuationToken; foreach (CloudTable table in resultSegment) { Assert.IsTrue(table.Name.StartsWith(prefix)); ++totalCount; } }while (token != null); Assert.AreEqual(20, totalCount); }
public void ListTablesSegmentedWithPrefixAPM() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); int segCount = 0; do { using (ManualResetEvent evt = new ManualResetEvent(false)) { IAsyncResult asyncRes = tableClient.BeginListTablesSegmented(prefixTablesPrefix, null, segment != null ? segment.ContinuationToken : null, null, null, (res) => { evt.Set(); }, null); evt.WaitOne(); segment = tableClient.EndListTablesSegmented(asyncRes); } totalResults.AddRange(segment); segCount++; }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, 20); foreach (CloudTable tbl in totalResults) { Assert.IsTrue(tbl.Name.StartsWith(prefixTablesPrefix)); } }
public void ListTablesSegmentedWithPrefixSync() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); int segCount = 0; do { segment = tableClient.ListTablesSegmented(prefixTablesPrefix, null, segment != null ? segment.ContinuationToken : null, null, null); totalResults.AddRange(segment); segCount++; }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, 20); foreach (CloudTable tbl in totalResults) { Assert.IsTrue(tbl.Name.StartsWith(prefixTablesPrefix)); } }
public void ListTablesSegmentedMaxResultsAPM() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); int segCount = 0; do { using (ManualResetEvent evt = new ManualResetEvent(false)) { IAsyncResult asyncRes = tableClient.BeginListTablesSegmented(string.Empty, 10, segment != null ? segment.ContinuationToken : null, null, null, (res) => { evt.Set(); }, null); evt.WaitOne(); segment = tableClient.EndListTablesSegmented(asyncRes); } Assert.IsTrue(segment.Count() <= 10); totalResults.AddRange(segment); segCount++; }while (segment.ContinuationToken != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables().Count()); Assert.IsTrue(segCount >= totalResults.Count / 10); }