Skip to content

Commit eeba88f

Browse files
authored
update samples (Azure#20138)
1 parent 214b67d commit eeba88f

11 files changed

+110
-131
lines changed

sdk/translation/Azure.AI.Translation.Document/README.md

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -254,27 +254,7 @@ var inputs = new List<DocumentTranslationInput>()
254254

255255
DocumentTranslationOperation operation = await client.StartTranslationAsync(inputs);
256256

257-
TimeSpan pollingInterval = new(1000);
258-
259-
while (!operation.HasCompleted)
260-
{
261-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
262-
{
263-
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
264-
}
265-
266-
await Task.Delay(pollingInterval);
267-
await operation.UpdateStatusAsync();
268-
269-
Console.WriteLine($" Status: {operation.Status}");
270-
Console.WriteLine($" Created on: {operation.CreatedOn}");
271-
Console.WriteLine($" Last modified: {operation.LastModified}");
272-
Console.WriteLine($" Total documents: {operation.DocumentsTotal}");
273-
Console.WriteLine($" Succeeded: {operation.DocumentsSucceeded}");
274-
Console.WriteLine($" Failed: {operation.DocumentsFailed}");
275-
Console.WriteLine($" In Progress: {operation.DocumentsInProgress}");
276-
Console.WriteLine($" Not started: {operation.DocumentsNotStarted}");
277-
}
257+
await operation.WaitForCompletionAsync();
278258

279259
await foreach (DocumentStatusResult document in operation.GetValuesAsync())
280260
{
@@ -308,14 +288,8 @@ DocumentTranslationOperation operation = client.StartTranslation(input);
308288

309289
TimeSpan pollingInterval = new(1000);
310290

311-
while (!operation.HasCompleted)
291+
while (true)
312292
{
313-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
314-
{
315-
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
316-
}
317-
318-
Thread.Sleep(pollingInterval);
319293
operation.UpdateStatus();
320294

321295
Console.WriteLine($" Status: {operation.Status}");
@@ -326,6 +300,19 @@ while (!operation.HasCompleted)
326300
Console.WriteLine($" Failed: {operation.DocumentsFailed}");
327301
Console.WriteLine($" In Progress: {operation.DocumentsInProgress}");
328302
Console.WriteLine($" Not started: {operation.DocumentsNotStarted}");
303+
304+
if (operation.HasCompleted)
305+
{
306+
break;
307+
}
308+
else
309+
{
310+
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
311+
{
312+
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
313+
}
314+
Thread.Sleep(pollingInterval);
315+
}
329316
}
330317

331318
foreach (DocumentStatusResult document in operation.GetValues())

sdk/translation/Azure.AI.Translation.Document/samples/Sample2_PollIndividualDocuments.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,24 @@ DocumentTranslationOperation operation = await client.StartTranslationAsync(inpu
2727

2828
TimeSpan pollingInterval = new(1000);
2929

30-
AsyncPageable<DocumentStatusResult> documents = operation.GetAllDocumentStatusesAsync();
31-
await foreach (DocumentStatusResult document in documents)
30+
await foreach (DocumentStatusResult document in operation.GetAllDocumentStatusesAsync())
3231
{
33-
Console.WriteLine($"Polling Status for document{document.TranslatedDocumentUri}");
32+
Console.WriteLine($"Polling Status for document{document.SourceDocumentUri}");
3433

35-
Response<DocumentStatusResult> status = await operation.GetDocumentStatusAsync(document.DocumentId);
34+
Response<DocumentStatusResult> responseDocumentStatus = await operation.GetDocumentStatusAsync(document.DocumentId);
3635

37-
while (!status.Value.HasCompleted)
36+
while (!responseDocumentStatus.Value.HasCompleted)
3837
{
39-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
38+
if (responseDocumentStatus.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
4039
{
4140
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
4241
}
4342

4443
await Task.Delay(pollingInterval);
45-
status = await operation.GetDocumentStatusAsync(document.DocumentId);
44+
responseDocumentStatus = await operation.GetDocumentStatusAsync(document.DocumentId);
4645
}
4746

48-
if (status.Value.Status == TranslationStatus.Succeeded)
47+
if (responseDocumentStatus.Value.Status == TranslationStatus.Succeeded)
4948
{
5049
Console.WriteLine($" Translated Document Uri: {document.TranslatedDocumentUri}");
5150
Console.WriteLine($" Translated to language: {document.TranslateTo}.");

sdk/translation/Azure.AI.Translation.Document/samples/Sample4_MultipleInputs.md

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,27 +47,7 @@ var inputs = new List<DocumentTranslationInput>()
4747

4848
DocumentTranslationOperation operation = await client.StartTranslationAsync(inputs);
4949

50-
TimeSpan pollingInterval = new(1000);
51-
52-
while (!operation.HasCompleted)
53-
{
54-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
55-
{
56-
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
57-
}
58-
59-
await Task.Delay(pollingInterval);
60-
await operation.UpdateStatusAsync();
61-
62-
Console.WriteLine($" Status: {operation.Status}");
63-
Console.WriteLine($" Created on: {operation.CreatedOn}");
64-
Console.WriteLine($" Last modified: {operation.LastModified}");
65-
Console.WriteLine($" Total documents: {operation.DocumentsTotal}");
66-
Console.WriteLine($" Succeeded: {operation.DocumentsSucceeded}");
67-
Console.WriteLine($" Failed: {operation.DocumentsFailed}");
68-
Console.WriteLine($" In Progress: {operation.DocumentsInProgress}");
69-
Console.WriteLine($" Not started: {operation.DocumentsNotStarted}");
70-
}
50+
await operation.WaitForCompletionAsync();
7151

7252
await foreach (DocumentStatusResult document in operation.GetValuesAsync())
7353
{

sdk/translation/Azure.AI.Translation.Document/src/DocumentTranslationOperation.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ public class DocumentTranslationOperation : PageableOperation<DocumentStatusResu
100100
/// </summary>
101101
private bool _hasCompleted;
102102

103+
/// <summary>
104+
/// <c>true</c> if the long-running operation has a value. Otherwise, <c>false</c>.
105+
/// </summary>
106+
private bool _hasValue;
107+
103108
/// <summary>
104109
/// Returns true if the long-running operation completed.
105110
/// </summary>
@@ -125,7 +130,7 @@ public class DocumentTranslationOperation : PageableOperation<DocumentStatusResu
125130
/// <summary>
126131
/// Returns true if the long-running operation completed successfully and has produced final result (accessible by Value property).
127132
/// </summary>
128-
public override bool HasValue => _firstPage != null;
133+
public override bool HasValue => _hasValue;
129134

130135
/// <summary>
131136
/// Protected constructor to allow mocking.
@@ -230,7 +235,7 @@ public async override ValueTask<Response<AsyncPageable<DocumentStatusResult>>> W
230235
{
231236
var response = await _serviceClient.GetOperationDocumentsStatusAsync(new Guid(Id), cancellationToken: cancellationToken).ConfigureAwait(false);
232237
_firstPage = Page.FromValues(response.Value.Value, response.Value.NextLink, response.GetRawResponse());
233-
238+
_hasValue = true;
234239
async Task<Page<DocumentStatusResult>> NextPageFunc(string nextLink, int? pageSizeHint)
235240
{
236241
// TODO: diagnostics scope?
@@ -289,6 +294,7 @@ private async ValueTask<Response> UpdateStatusAsync(bool async, CancellationToke
289294
|| update.Value.Status == TranslationStatus.Failed)
290295
{
291296
_hasCompleted = true;
297+
_hasValue = true;
292298
}
293299
else if (update.Value.Status == TranslationStatus.ValidationFailed)
294300
{

sdk/translation/Azure.AI.Translation.Document/tests/samples/Sample_DocumentStatus.cs

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,21 @@ public void DocumentStatus()
1919
{
2020
string endpoint = TestEnvironment.Endpoint;
2121
string apiKey = TestEnvironment.ApiKey;
22-
Uri sourceUri = new Uri("");
23-
Uri targetUri = new Uri("");
2422

2523
var client = new DocumentTranslationClient(new Uri(endpoint), new AzureKeyCredential(apiKey));
2624

25+
Uri sourceUri = new Uri("<source SAS URI>");
26+
Uri targetUri = new Uri("<target SAS URI>");
27+
2728
var input = new DocumentTranslationInput(sourceUri, targetUri, "es");
2829
DocumentTranslationOperation operation = client.StartTranslation(input);
2930

3031
TimeSpan pollingInterval = new(1000);
3132

3233
var documentscompleted = new HashSet<string>();
3334

34-
while (!operation.HasCompleted)
35+
while (true)
3536
{
36-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
37-
{
38-
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
39-
}
40-
41-
Thread.Sleep(pollingInterval);
4237
operation.UpdateStatus();
4338

4439
Pageable<DocumentStatusResult> documentsStatus = operation.GetAllDocumentStatuses();
@@ -49,8 +44,21 @@ public void DocumentStatus()
4944
if (docStatus.Status == TranslationStatus.Succeeded || docStatus.Status == TranslationStatus.Failed)
5045
{
5146
documentscompleted.Add(docStatus.DocumentId);
52-
Console.WriteLine($"Document {docStatus.TranslatedDocumentUri} completed with status ${docStatus.Status}");
47+
Console.WriteLine($"Document {docStatus.TranslatedDocumentUri} completed with status {docStatus.Status}");
48+
}
49+
}
50+
51+
if (operation.HasCompleted)
52+
{
53+
break;
54+
}
55+
else
56+
{
57+
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
58+
{
59+
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
5360
}
61+
Thread.Sleep(pollingInterval);
5462
}
5563
}
5664
}

sdk/translation/Azure.AI.Translation.Document/tests/samples/Sample_DocumentStatusAsync.cs

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,21 @@ public async Task DocumentStatusAsync()
1919
{
2020
string endpoint = TestEnvironment.Endpoint;
2121
string apiKey = TestEnvironment.ApiKey;
22-
Uri sourceUri = new Uri("");
23-
Uri targetUri = new Uri("");
2422

2523
var client = new DocumentTranslationClient(new Uri(endpoint), new AzureKeyCredential(apiKey));
2624

25+
Uri sourceUri = new Uri("<source SAS URI>");
26+
Uri targetUri = new Uri("<target SAS URI>");
27+
2728
var input = new DocumentTranslationInput(sourceUri, targetUri, "es");
2829
DocumentTranslationOperation operation = await client.StartTranslationAsync(input);
2930

3031
TimeSpan pollingInterval = new(1000);
3132

3233
var documentscompleted = new HashSet<string>();
3334

34-
while (!operation.HasCompleted)
35+
while (true)
3536
{
36-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
37-
{
38-
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
39-
}
40-
41-
await Task.Delay(pollingInterval);
4237
await operation.UpdateStatusAsync();
4338

4439
AsyncPageable<DocumentStatusResult> documentsStatus = operation.GetAllDocumentStatusesAsync();
@@ -49,8 +44,21 @@ public async Task DocumentStatusAsync()
4944
if (docStatus.Status == TranslationStatus.Succeeded || docStatus.Status == TranslationStatus.Failed)
5045
{
5146
documentscompleted.Add(docStatus.DocumentId);
52-
Console.WriteLine($"Document {docStatus.TranslatedDocumentUri} completed with status ${docStatus.Status}");
47+
Console.WriteLine($"Document {docStatus.TranslatedDocumentUri} completed with status {docStatus.Status}");
48+
}
49+
}
50+
51+
if (operation.HasCompleted)
52+
{
53+
break;
54+
}
55+
else
56+
{
57+
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
58+
{
59+
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
5360
}
61+
await Task.Delay(pollingInterval);
5462
}
5563
}
5664
}

sdk/translation/Azure.AI.Translation.Document/tests/samples/Sample_MultipleInputs.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,8 @@ public void MultipleInputs()
5555

5656
TimeSpan pollingInterval = new(1000);
5757

58-
while (!operation.HasCompleted)
58+
while (true)
5959
{
60-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
61-
{
62-
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
63-
}
64-
65-
Thread.Sleep(pollingInterval);
6660
operation.UpdateStatus();
6761

6862
Console.WriteLine($" Status: {operation.Status}");
@@ -73,6 +67,19 @@ public void MultipleInputs()
7367
Console.WriteLine($" Failed: {operation.DocumentsFailed}");
7468
Console.WriteLine($" In Progress: {operation.DocumentsInProgress}");
7569
Console.WriteLine($" Not started: {operation.DocumentsNotStarted}");
70+
71+
if (operation.HasCompleted)
72+
{
73+
break;
74+
}
75+
else
76+
{
77+
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
78+
{
79+
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
80+
}
81+
Thread.Sleep(pollingInterval);
82+
}
7683
}
7784

7885
foreach (DocumentStatusResult document in operation.GetValues())

sdk/translation/Azure.AI.Translation.Document/tests/samples/Sample_MultipleInputsAsync.cs

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -53,27 +53,7 @@ public async Task MultipleInputsAsync()
5353

5454
DocumentTranslationOperation operation = await client.StartTranslationAsync(inputs);
5555

56-
TimeSpan pollingInterval = new(1000);
57-
58-
while (!operation.HasCompleted)
59-
{
60-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
61-
{
62-
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
63-
}
64-
65-
await Task.Delay(pollingInterval);
66-
await operation.UpdateStatusAsync();
67-
68-
Console.WriteLine($" Status: {operation.Status}");
69-
Console.WriteLine($" Created on: {operation.CreatedOn}");
70-
Console.WriteLine($" Last modified: {operation.LastModified}");
71-
Console.WriteLine($" Total documents: {operation.DocumentsTotal}");
72-
Console.WriteLine($" Succeeded: {operation.DocumentsSucceeded}");
73-
Console.WriteLine($" Failed: {operation.DocumentsFailed}");
74-
Console.WriteLine($" In Progress: {operation.DocumentsInProgress}");
75-
Console.WriteLine($" Not started: {operation.DocumentsNotStarted}");
76-
}
56+
await operation.WaitForCompletionAsync();
7757

7858
await foreach (DocumentStatusResult document in operation.GetValuesAsync())
7959
{

sdk/translation/Azure.AI.Translation.Document/tests/samples/Sample_PollIndividualDocuments.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,24 @@ public void PollIndividualDocuments()
3434

3535
TimeSpan pollingInterval = new(1000);
3636

37-
Pageable<DocumentStatusResult> documents = operation.GetAllDocumentStatuses();
38-
foreach (DocumentStatusResult document in documents)
37+
foreach (DocumentStatusResult document in operation.GetAllDocumentStatuses())
3938
{
40-
Console.WriteLine($"Polling Status for document{document.TranslatedDocumentUri}");
39+
Console.WriteLine($"Polling Status for document{document.SourceDocumentUri}");
4140

42-
Response<DocumentStatusResult> status = operation.GetDocumentStatus(document.DocumentId);
41+
Response<DocumentStatusResult> responseDocumentStatus = operation.GetDocumentStatus(document.DocumentId);
4342

44-
while (!status.Value.HasCompleted)
43+
while (!responseDocumentStatus.Value.HasCompleted)
4544
{
46-
if (operation.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
45+
if (responseDocumentStatus.GetRawResponse().Headers.TryGetValue("Retry-After", out string value))
4746
{
4847
pollingInterval = TimeSpan.FromSeconds(Convert.ToInt32(value));
4948
}
5049

5150
Thread.Sleep(pollingInterval);
52-
status = operation.GetDocumentStatus(document.DocumentId);
51+
responseDocumentStatus = operation.GetDocumentStatus(document.DocumentId);
5352
}
5453

55-
if (status.Value.Status == TranslationStatus.Succeeded)
54+
if (responseDocumentStatus.Value.Status == TranslationStatus.Succeeded)
5655
{
5756
Console.WriteLine($" Translated Document Uri: {document.TranslatedDocumentUri}");
5857
Console.WriteLine($" Translated to language: {document.TranslateTo}.");

0 commit comments

Comments
 (0)