/// <summary> /// Ensure that the response indicates success. /// </summary> /// <param name="allowInProgress"> /// Treat an in-progress response as successful? /// /// Default is <c>true</c>. /// </param> /// <exception cref="CloudControlException"> /// The response does not indicate success. /// </exception> public void EnsureSuccess(bool allowInProgress = true) { if (IsSuccess(allowInProgress)) { return; } throw CloudControlException.FromApiV2Response(this); }
/// <summary> /// Create an <see cref="ErrorRecord"/> representing an error from the CloudControl API. /// </summary> /// <param name="client"> /// The CloudControl API client. /// </param> /// <param name="apiResponse"> /// The API response from CloudControl. /// </param> /// <returns> /// The configured <see cref="ErrorRecord"/>. /// </returns> public static ErrorRecord CloudControlApi(CloudControlClient client, ApiResponseV2 apiResponse) { if (client == null) { throw new ArgumentNullException(nameof(client)); } if (apiResponse == null) { throw new ArgumentNullException(nameof(apiResponse)); } return(new ErrorRecord( exception: CloudControlException.FromApiV2Response(apiResponse, statusCode: 0), errorId: $"CloudControl.API.{apiResponse.ResponseCode}", errorCategory: ErrorCategory.NotSpecified, targetObject: client.BaseAddress?.AbsoluteUri ?? "Unknown" )); }