private async Task PollBotImportStatusAsync(string importId, CancellationToken cancellationToken) { var getImportRequest = new GetImportRequest { ImportId = importId, }; var count = 0; while (true) { // Check the status of the import operation var getImportResponse = await this.LexClient.GetImportAsync(getImportRequest, cancellationToken).ConfigureAwait(false); // If complete, break from the loop if (getImportResponse.ImportStatus == ImportStatus.COMPLETE) { break; } // If failed, throw an exception if (getImportResponse.ImportStatus == ImportStatus.FAILED) { Debug.Assert(getImportResponse.FailureReason != null, "Default behavior is an empty list for 'FailureReason'."); var exceptionMessage = string.Join(Environment.NewLine, getImportResponse.FailureReason); throw new InvalidOperationException(exceptionMessage); } // If in progress, delay with linear backoff var delay = TimeSpan.FromSeconds(GetImportDelaySeconds * ++count); await Task.Delay(delay, cancellationToken).ConfigureAwait(false); } }
public static async Task <GetImportResponse> GetImportStatusAsync(this IMediator mediator, string jobId, CancellationToken cancellationToken) { EnsureArg.IsNotNull(mediator, nameof(mediator)); EnsureArg.IsNotNullOrWhiteSpace(jobId, nameof(jobId)); var request = new GetImportRequest(jobId); GetImportResponse response = await mediator.Send(request, cancellationToken); return(response); }
public static void Run() { var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey); var apiInstance = new AnnotateApi(configuration); try { // Set request. var request = new GetImportRequest() { filePath = "Annotationdocs\\ten-pages.docx" }; var response = apiInstance.GetImport(request); Console.WriteLine("Expected response type is List<AnnotationInfo>: " + response.ToString()); } catch (Exception e) { Console.WriteLine("Exception while calling Annotation AnnotateApi: " + e.Message); } }
public Task <GetImportResponse> GetImportAsync(GetImportRequest request, CancellationToken cancellationToken) { return(RetryAsync(this.AmazonLexModelClient.GetImportAsync, request, cancellationToken)); }
public async Task <GetImportResponse> GetImportAsync(GetImportRequest request, CancellationToken cancellationToken) { await this.ProcessRequestAsync(request).ConfigureAwait(false); return(this.Get <GetImportResponse>()); }