internal static ApiManagementLongRunningOperation CreateLongRunningOperation( string operationName, LongRunningOperationResponse longRunningResponse) { if (string.IsNullOrWhiteSpace(operationName)) { throw new ArgumentNullException("operationName"); } if (longRunningResponse == null) { throw new ArgumentNullException("longRunningResponse"); } var result = new ApiManagementLongRunningOperation { OperationName = operationName, OperationLink = longRunningResponse.OperationStatusLink, RetryAfter = TimeSpan.FromSeconds(longRunningResponse.RetryAfter), Status = longRunningResponse.Status, Error = longRunningResponse.Error != null ? longRunningResponse.Error.Message : null }; var apiServiceLongRunnigResponse = longRunningResponse as ApiServiceLongRunningOperationResponse; if (apiServiceLongRunnigResponse != null && apiServiceLongRunnigResponse.Value != null) { result.ApiManagement = new PsApiManagement(apiServiceLongRunnigResponse.Value); } return result; }
internal static ApiManagementLongRunningOperation CreateLongRunningOperation( string operationName, LongRunningOperationResponse longRunningResponse) { if (string.IsNullOrWhiteSpace(operationName)) { throw new ArgumentNullException("operationName"); } if (longRunningResponse == null) { throw new ArgumentNullException("longRunningResponse"); } var result = new ApiManagementLongRunningOperation { OperationName = operationName, OperationLink = longRunningResponse.OperationStatusLink, RetryAfter = TimeSpan.FromSeconds(longRunningResponse.RetryAfter), Status = longRunningResponse.Status, Error = longRunningResponse.Error != null ? longRunningResponse.Error.Message : null }; var apiServiceLongRunnigResponse = longRunningResponse as ApiServiceLongRunningOperationResponse; if (apiServiceLongRunnigResponse != null && apiServiceLongRunnigResponse.Value != null) { result.ApiManagement = new PsApiManagement(apiServiceLongRunnigResponse.Value); } return(result); }
protected ApiManagementLongRunningOperation WaitForOperationToComplete(ApiManagementLongRunningOperation longRunningOperation) { WriteProgress(longRunningOperation); while (longRunningOperation.Status == OperationStatus.InProgress) { var retryAfter = longRunningOperation.RetryAfter ?? LongRunningOperationDefaultTimeout; WriteVerboseWithTimestamp(Resources.VerboseGetOperationStateTimeoutMessage, retryAfter); Thread.Sleep(retryAfter); longRunningOperation = Client.GetLongRunningOperationStatus(longRunningOperation); WriteProgress(longRunningOperation); } return longRunningOperation; }
internal ApiManagementLongRunningOperation GetLongRunningOperationStatus(ApiManagementLongRunningOperation longRunningOperation) { var response = Client.ResourceProvider .GetApiServiceLongRunningOperationStatusAsync(longRunningOperation.OperationLink) .ConfigureAwait(false) .GetAwaiter() .GetResult(); AdjustRetryAfter(response, _client.LongRunningOperationInitialTimeout); var result = ApiManagementLongRunningOperation.CreateLongRunningOperation(longRunningOperation.OperationName, response); return result; }
protected void WriteProgress(ApiManagementLongRunningOperation operation) { WriteProgress(new ProgressRecord(0, operation.OperationName, operation.Status.ToString())); }