From 8866575384d578f63f84154c4f8dd01c6075eb3b Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 18 May 2020 16:36:57 +0800 Subject: [PATCH 01/20] add AzureRestenericOperations to return raw json response --- .../AzureRest/AzureRestGenericOperations.cs | 311 ++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 src/Common/AzureRest/AzureRestGenericOperations.cs diff --git a/src/Common/AzureRest/AzureRestGenericOperations.cs b/src/Common/AzureRest/AzureRestGenericOperations.cs new file mode 100644 index 0000000000..db6ef00be4 --- /dev/null +++ b/src/Common/AzureRest/AzureRestGenericOperations.cs @@ -0,0 +1,311 @@ +using Microsoft.Rest; +using Microsoft.Rest.Azure; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Internal.Common +{ + internal partial class AzureRestOperations : IServiceOperations, IAzureRestOperations + { + private static readonly HttpMethod PATCH = new HttpMethod("PATCH"); + + private static readonly string API_VERSION = "api-version"; + /// + /// Initializes a new instance of the AzureRestOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal AzureRestOperations(AzureRestClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the AzureRestClient + /// + public AzureRestClient Client { get; private set; } + + public async Task> BeginHttpMessagesAsync(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (path == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "path"); + } + if (path.Length > 0) + { + if (path.StartsWith("/") && Client.EndsWithSlash) + { + path = path.Substring(1); + } + else if (!path.StartsWith("/") && !Client.EndsWithSlash) + { + path = "/" + path; + } + } + + if (method == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "method"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "BeginSend", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(_baseUrl + path).ToString(); + if(queries != null) + { + foreach (string key in queries.Keys) + { + _url += (_url.Contains("?") ? "&" : "?") + key + "=" + string.Join(",", queries[key]); + } + } + if (!String.IsNullOrEmpty(fragment)) + { + _url += "#" + fragment; + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = method; + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + if (customHeaders != null) + { + foreach (var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + if (content != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(content, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode >= 300 && (int)_statusCode < 400) + { + var ex = new NotImplementedException(string.Format("Redirection status code '{0}' is not supported", _statusCode)); + throw ex; + } + else if ((int)_statusCode >= 400 && (int)_statusCode < 500) + { + var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + else if ((int)_statusCode >= 500 && (int)_statusCode < 600) + { + var ex = new CloudException(string.Format("Server Error with status code '{0}'", _statusCode)); + throw ex; + } + else if ((int)_statusCode < 200 && (int)_statusCode > 600) + { + var ex = new CloudException(string.Format("Unknow status code '{0}'", _statusCode)); + throw ex; + } + + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _result.Body = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + } + if ((int)_statusCode > 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + return null; + } + + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + public async Task BeginHttpGetMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if(apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Get, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + public async Task BeginHttpDeleteMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Delete, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + // no return required + } + } + + + public async Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsync(method: method, + path: resourceUri, + queries: queries, + fragment: null, + content: content, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return (_result==null)? default(T) : _result.Body; + } + } + public T GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpGetMessagesAsync(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public List GetResouceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpGetMessagesAsync>(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public P GetResoucePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage + { + return BeginHttpGetMessagesAsync

(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + BeginHttpDeleteMessagesAsync(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public T PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsync(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public T PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsync(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + public T PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + } +} From 53afd04ecd00a09bcc3560254974375ff2f010d7 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 18 May 2020 17:41:42 +0800 Subject: [PATCH 02/20] update class name --- src/Common/AzureRest/AzureRestGenericOperations.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Common/AzureRest/AzureRestGenericOperations.cs b/src/Common/AzureRest/AzureRestGenericOperations.cs index db6ef00be4..1ccef59d09 100644 --- a/src/Common/AzureRest/AzureRestGenericOperations.cs +++ b/src/Common/AzureRest/AzureRestGenericOperations.cs @@ -10,7 +10,7 @@ namespace Microsoft.Azure.Internal.Common { - internal partial class AzureRestOperations : IServiceOperations, IAzureRestOperations + internal partial class AzureRestGenericOperations : IServiceOperations, IAzureRestOperations { private static readonly HttpMethod PATCH = new HttpMethod("PATCH"); From fb7ba62a04933e3a83e116118f4f4f3784ddcba7 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 18 May 2020 17:42:44 +0800 Subject: [PATCH 03/20] constructor --- src/Common/AzureRest/AzureRestGenericOperations.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Common/AzureRest/AzureRestGenericOperations.cs b/src/Common/AzureRest/AzureRestGenericOperations.cs index 1ccef59d09..66414998b2 100644 --- a/src/Common/AzureRest/AzureRestGenericOperations.cs +++ b/src/Common/AzureRest/AzureRestGenericOperations.cs @@ -24,7 +24,7 @@ internal partial class AzureRestGenericOperations : IServiceOperations /// Thrown when a required parameter is null /// - internal AzureRestOperations(AzureRestClient client) + internal AzureRestGenericOperations(AzureRestClient client) { if (client == null) { From db1eccc57cfd73f285905cefce48657f198c5021 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 18 May 2020 19:25:45 +0800 Subject: [PATCH 04/20] update azurerestgenericoperations --- src/Common/AzureRest/AzureRestClient.cs | 3 + .../AzureRest/AzureRestGenericOperations.cs | 46 ++++---- .../AzureRest/IAzureRestGenericOperations.cs | 102 ++++++++++++++++++ 3 files changed, 123 insertions(+), 28 deletions(-) create mode 100644 src/Common/AzureRest/IAzureRestGenericOperations.cs diff --git a/src/Common/AzureRest/AzureRestClient.cs b/src/Common/AzureRest/AzureRestClient.cs index aa214a0c02..d654bc3b44 100644 --- a/src/Common/AzureRest/AzureRestClient.cs +++ b/src/Common/AzureRest/AzureRestClient.cs @@ -31,6 +31,8 @@ public partial class AzureRestClient : ServiceClient, IAzureRes public IAzureRestOperations Operations { get; private set; } + public IAzureRestGenericOperations GenericOperations { get; private set; } + public bool EndsWithSlash { get; private set; } protected AzureRestClient(params DelegatingHandler[] handlers) : base(handlers) @@ -67,6 +69,7 @@ public AzureRestClient(System.Uri baseUri, ServiceClientCredentials credentials, private void Initialize() { Operations = new AzureRestOperations(this); + GenericOperations = new AzureRestGenericOperations(this); BaseUri = new System.Uri("https://management.azure.com"); AcceptLanguage = "en-US"; LongRunningOperationRetryTimeout = 30; diff --git a/src/Common/AzureRest/AzureRestGenericOperations.cs b/src/Common/AzureRest/AzureRestGenericOperations.cs index 66414998b2..d9a9da1fdd 100644 --- a/src/Common/AzureRest/AzureRestGenericOperations.cs +++ b/src/Common/AzureRest/AzureRestGenericOperations.cs @@ -10,13 +10,13 @@ namespace Microsoft.Azure.Internal.Common { - internal partial class AzureRestGenericOperations : IServiceOperations, IAzureRestOperations + internal partial class AzureRestGenericOperations : IServiceOperations, IAzureRestGenericOperations { private static readonly HttpMethod PATCH = new HttpMethod("PATCH"); private static readonly string API_VERSION = "api-version"; ///

- /// Initializes a new instance of the AzureRestOperations class. + /// Initializes a new instance of the AzureRestGenericOperations class. /// /// /// Reference to the service client. @@ -38,7 +38,7 @@ internal AzureRestGenericOperations(AzureRestClient client) /// public AzureRestClient Client { get; private set; } - public async Task> BeginHttpMessagesAsync(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> BeginHttpMessagesAsync(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { if (path == null) { @@ -192,7 +192,7 @@ internal AzureRestGenericOperations(AzureRestClient client) } // Create Result - var _result = new AzureOperationResponse(); + var _result = new AzureOperationResponse(); _result.Request = _httpRequest; _result.Response = _httpResponse; if (_httpResponse.Headers.Contains("x-ms-request-id")) @@ -217,14 +217,14 @@ internal AzureRestGenericOperations(AzureRestClient client) return _result; } - public async Task BeginHttpGetMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task BeginHttpGetMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if(apiVersion != null) { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Get, + using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Get, path: resourceUri, queries: queries, fragment: null, @@ -243,7 +243,7 @@ internal AzureRestGenericOperations(AzureRestClient client) { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Delete, + using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Delete, path: resourceUri, queries: queries, fragment: null, @@ -256,14 +256,14 @@ internal AzureRestGenericOperations(AzureRestClient client) } - public async Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if (apiVersion != null) { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsync(method: method, + using (var _result = await BeginHttpMessagesAsync(method: method, path: resourceUri, queries: queries, fragment: null, @@ -271,22 +271,12 @@ internal AzureRestGenericOperations(AzureRestClient client) customHeaders: null, cancellationToken: cancellationToken).ConfigureAwait(false)) { - return (_result==null)? default(T) : _result.Body; + return (_result==null)? default(string) : _result.Body; } } - public T GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpGetMessagesAsync(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public List GetResouceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpGetMessagesAsync>(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public P GetResoucePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage - { - return BeginHttpGetMessagesAsync

(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpGetMessagesAsync(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } public void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) @@ -294,18 +284,18 @@ internal AzureRestGenericOperations(AzureRestClient client) BeginHttpDeleteMessagesAsync(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public T PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsync(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsync(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public T PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsync(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsync(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public T PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } } } diff --git a/src/Common/AzureRest/IAzureRestGenericOperations.cs b/src/Common/AzureRest/IAzureRestGenericOperations.cs new file mode 100644 index 0000000000..0649858da3 --- /dev/null +++ b/src/Common/AzureRest/IAzureRestGenericOperations.cs @@ -0,0 +1,102 @@ +using Microsoft.Rest.Azure; +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Internal.Common +{ + ///

+ /// AzureRest operations. + /// + public partial interface IAzureRestGenericOperations + { + /// + /// Support universal HTTP request + /// + /// Http Method + /// The path compoment in URL + /// The queries compoment in URL + /// The fragment compoment in URL + /// The content in request body + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task> BeginHttpMessagesAsync(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// GET request to resource URI + /// + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task BeginHttpGetMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// DELETE request to resource URI + /// + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task BeginHttpDeleteMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// Update(PUT, POST, PATCH) request to resource URI + /// + /// Http Method + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The content in request body + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} From c595487c5fe3bf7a291adff78e78a31e9152e4ae Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 18 May 2020 19:52:14 +0800 Subject: [PATCH 05/20] remove generic operation --- src/Common/AzureRest/AzureRestClient.cs | 3 - ...ons.cs => AzureRestOperationsExtention.cs} | 66 ++++-------- .../AzureRest/IAzureRestGenericOperations.cs | 102 ------------------ 3 files changed, 20 insertions(+), 151 deletions(-) rename src/Common/AzureRest/{AzureRestGenericOperations.cs => AzureRestOperationsExtention.cs} (73%) delete mode 100644 src/Common/AzureRest/IAzureRestGenericOperations.cs diff --git a/src/Common/AzureRest/AzureRestClient.cs b/src/Common/AzureRest/AzureRestClient.cs index d654bc3b44..aa214a0c02 100644 --- a/src/Common/AzureRest/AzureRestClient.cs +++ b/src/Common/AzureRest/AzureRestClient.cs @@ -31,8 +31,6 @@ public partial class AzureRestClient : ServiceClient, IAzureRes public IAzureRestOperations Operations { get; private set; } - public IAzureRestGenericOperations GenericOperations { get; private set; } - public bool EndsWithSlash { get; private set; } protected AzureRestClient(params DelegatingHandler[] handlers) : base(handlers) @@ -69,7 +67,6 @@ public AzureRestClient(System.Uri baseUri, ServiceClientCredentials credentials, private void Initialize() { Operations = new AzureRestOperations(this); - GenericOperations = new AzureRestGenericOperations(this); BaseUri = new System.Uri("https://management.azure.com"); AcceptLanguage = "en-US"; LongRunningOperationRetryTimeout = 30; diff --git a/src/Common/AzureRest/AzureRestGenericOperations.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs similarity index 73% rename from src/Common/AzureRest/AzureRestGenericOperations.cs rename to src/Common/AzureRest/AzureRestOperationsExtention.cs index d9a9da1fdd..5f874b9765 100644 --- a/src/Common/AzureRest/AzureRestGenericOperations.cs +++ b/src/Common/AzureRest/AzureRestOperationsExtention.cs @@ -10,35 +10,9 @@ namespace Microsoft.Azure.Internal.Common { - internal partial class AzureRestGenericOperations : IServiceOperations, IAzureRestGenericOperations + internal partial class AzureRestOperations { - private static readonly HttpMethod PATCH = new HttpMethod("PATCH"); - - private static readonly string API_VERSION = "api-version"; - /// - /// Initializes a new instance of the AzureRestGenericOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - internal AzureRestGenericOperations(AzureRestClient client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the AzureRestClient - /// - public AzureRestClient Client { get; private set; } - - public async Task> BeginHttpMessagesAsync(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { if (path == null) { @@ -217,14 +191,14 @@ internal AzureRestGenericOperations(AzureRestClient client) return _result; } - public async Task BeginHttpGetMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if(apiVersion != null) { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Get, + using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, path: resourceUri, queries: queries, fragment: null, @@ -236,14 +210,14 @@ internal AzureRestGenericOperations(AzureRestClient client) } } - public async Task BeginHttpDeleteMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if (apiVersion != null) { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsync(method: HttpMethod.Delete, + using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, path: resourceUri, queries: queries, fragment: null, @@ -251,19 +225,19 @@ internal AzureRestGenericOperations(AzureRestClient client) customHeaders: null, cancellationToken: cancellationToken).ConfigureAwait(false)) { - // no return required + return (_result==null)? default(string) : _result.Body; } } - public async Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if (apiVersion != null) { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsync(method: method, + using (var _result = await BeginHttpMessagesAsyncGeneric(method: method, path: resourceUri, queries: queries, fragment: null, @@ -274,28 +248,28 @@ internal AzureRestGenericOperations(AzureRestClient client) return (_result==null)? default(string) : _result.Body; } } - public string GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpGetMessagesAsync(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpGetMessagesAsyncGeneric(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - BeginHttpDeleteMessagesAsync(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + BeginHttpDeleteMessagesAsyncGeneric(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public string PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsync(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public string PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsync(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public string PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsyncGeneric(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } } -} +} \ No newline at end of file diff --git a/src/Common/AzureRest/IAzureRestGenericOperations.cs b/src/Common/AzureRest/IAzureRestGenericOperations.cs deleted file mode 100644 index 0649858da3..0000000000 --- a/src/Common/AzureRest/IAzureRestGenericOperations.cs +++ /dev/null @@ -1,102 +0,0 @@ -using Microsoft.Rest.Azure; -using System; -using System.Collections.Generic; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; - -namespace Microsoft.Azure.Internal.Common -{ - /// - /// AzureRest operations. - /// - public partial interface IAzureRestGenericOperations - { - /// - /// Support universal HTTP request - /// - /// Http Method - /// The path compoment in URL - /// The queries compoment in URL - /// The fragment compoment in URL - /// The content in request body - /// The headers that will be added to request. - /// The cancellation token. - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task> BeginHttpMessagesAsync(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// GET request to resource URI - /// - /// - /// URI represents resource and correlated. Use the format - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... - /// - /// The API version to use for the operation. - /// The headers that will be added to request. - /// The cancellation token. - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task BeginHttpGetMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// DELETE request to resource URI - /// - /// - /// URI represents resource and correlated. Use the format - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... - /// - /// The API version to use for the operation. - /// The headers that will be added to request. - /// The cancellation token. - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task BeginHttpDeleteMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// Update(PUT, POST, PATCH) request to resource URI - /// - /// Http Method - /// - /// URI represents resource and correlated. Use the format - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... - /// - /// The API version to use for the operation. - /// The content in request body - /// The headers that will be added to request. - /// The cancellation token. - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} From bb950b816628907f8eb3ef688703e2b72d0cf251 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 18 May 2020 19:57:30 +0800 Subject: [PATCH 06/20] fix type --- src/Common/AzureRest/AzureRestOperationsExtention.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperationsExtention.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs index 5f874b9765..569f9f2800 100644 --- a/src/Common/AzureRest/AzureRestOperationsExtention.cs +++ b/src/Common/AzureRest/AzureRestOperationsExtention.cs @@ -210,7 +210,7 @@ internal partial class AzureRestOperations } } - public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if (apiVersion != null) @@ -255,7 +255,7 @@ internal partial class AzureRestOperations public string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - BeginHttpDeleteMessagesAsyncGeneric(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpDeleteMessagesAsyncGeneric(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } public string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) From 9c0f6847f940afbb597e36de9e35e43d7678d270 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Tue, 19 May 2020 09:45:02 +0800 Subject: [PATCH 07/20] add IAzureRestOperationsExtention --- .../IAzureRestOperationsExtention.cs | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/Common/AzureRest/IAzureRestOperationsExtention.cs diff --git a/src/Common/AzureRest/IAzureRestOperationsExtention.cs b/src/Common/AzureRest/IAzureRestOperationsExtention.cs new file mode 100644 index 0000000000..9e351e592a --- /dev/null +++ b/src/Common/AzureRest/IAzureRestOperationsExtention.cs @@ -0,0 +1,30 @@ +using Microsoft.Rest.Azure; +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Internal.Common +{ + public partial interface IAzureRestOperations + { + Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} \ No newline at end of file From 31cd1b0c2c5977d82fa1c9fc853591a2053788b2 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Thu, 28 May 2020 14:58:22 +0800 Subject: [PATCH 08/20] try remove serialize for payload --- src/Common/AzureRest/AzureRestOperationsExtention.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperationsExtention.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs index 569f9f2800..82609c64f0 100644 --- a/src/Common/AzureRest/AzureRestOperationsExtention.cs +++ b/src/Common/AzureRest/AzureRestOperationsExtention.cs @@ -91,8 +91,8 @@ internal partial class AzureRestOperations string _requestContent = null; if (content != null) { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(content, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + //_requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(content, Client.SerializationSettings); + _httpRequest.Content = new StringContent((string)content, System.Text.Encoding.UTF8); _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); } // Set Credentials From 765d5b34a67ba441068a201711fbc43a55dc46e6 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 1 Jun 2020 15:49:16 +0800 Subject: [PATCH 09/20] support full response --- .../AzureRest/AzureRestOperationsExtention.cs | 81 +++++++++++++++++++ .../IAzureRestOperationsExtention.cs | 16 ++++ 2 files changed, 97 insertions(+) diff --git a/src/Common/AzureRest/AzureRestOperationsExtention.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs index 82609c64f0..c1fd16f687 100644 --- a/src/Common/AzureRest/AzureRestOperationsExtention.cs +++ b/src/Common/AzureRest/AzureRestOperationsExtention.cs @@ -210,6 +210,25 @@ internal partial class AzureRestOperations } } + public async Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if(apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return _result; + } + } + public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); @@ -229,6 +248,24 @@ internal partial class AzureRestOperations } } + public async Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return (_result==null)? default(AzureOperationResponse) : _result; + } + } public async Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { @@ -248,6 +285,26 @@ internal partial class AzureRestOperations return (_result==null)? default(string) : _result.Body; } } + + public async Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsyncGeneric(method: method, + path: resourceUri, + queries: queries, + fragment: null, + content: content, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return (_result==null)? default(AzureOperationResponse) : _result; + } + } + public string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsyncGeneric(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); @@ -271,5 +328,29 @@ internal partial class AzureRestOperations { return BeginHttpUpdateMessagesAsyncGeneric(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + + public AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpGetMessagesAsyncGenericFullResponse(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpDeleteMessagesAsyncGenericFullResponse(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + public AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGenericFullResponse(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } } } \ No newline at end of file diff --git a/src/Common/AzureRest/IAzureRestOperationsExtention.cs b/src/Common/AzureRest/IAzureRestOperationsExtention.cs index 9e351e592a..8bacba83be 100644 --- a/src/Common/AzureRest/IAzureRestOperationsExtention.cs +++ b/src/Common/AzureRest/IAzureRestOperationsExtention.cs @@ -17,6 +17,12 @@ public partial interface IAzureRestOperations Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); @@ -26,5 +32,15 @@ public partial interface IAzureRestOperations string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); } } \ No newline at end of file From e4080a41c3299b22a781edbd33cc4857d9658811 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 1 Jun 2020 18:37:19 +0800 Subject: [PATCH 10/20] to return full response --- .../AzureRest/AzureRestOperationsExtention.cs | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperationsExtention.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs index c1fd16f687..ccd4b0f7c8 100644 --- a/src/Common/AzureRest/AzureRestOperationsExtention.cs +++ b/src/Common/AzureRest/AzureRestOperationsExtention.cs @@ -217,16 +217,13 @@ internal partial class AzureRestOperations { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, + return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, path: resourceUri, queries: queries, fragment: null, content: null, customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return _result; - } + cancellationToken: cancellationToken).ConfigureAwait(false); } public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) @@ -255,16 +252,14 @@ internal partial class AzureRestOperations { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, + + return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, path: resourceUri, queries: queries, fragment: null, content: null, customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return (_result==null)? default(AzureOperationResponse) : _result; - } + cancellationToken: cancellationToken).ConfigureAwait(false); } public async Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) @@ -293,16 +288,14 @@ internal partial class AzureRestOperations { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: method, + + return await BeginHttpMessagesAsyncGeneric(method: method, path: resourceUri, queries: queries, fragment: null, content: content, customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return (_result==null)? default(AzureOperationResponse) : _result; - } + cancellationToken: cancellationToken).ConfigureAwait(false); } public string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) From b2af617b0998d81af5f20e0df0c62c0eda40411f Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Wed, 3 Jun 2020 14:38:27 +0800 Subject: [PATCH 11/20] full response even when request failed --- src/Common/AzureRest/AzureRestOperationsExtention.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperationsExtention.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs index ccd4b0f7c8..92874a1649 100644 --- a/src/Common/AzureRest/AzureRestOperationsExtention.cs +++ b/src/Common/AzureRest/AzureRestOperationsExtention.cs @@ -88,10 +88,8 @@ internal partial class AzureRestOperations } } // Serialize Request - string _requestContent = null; if (content != null) { - //_requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(content, Client.SerializationSettings); _httpRequest.Content = new StringContent((string)content, System.Text.Encoding.UTF8); _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); } @@ -114,7 +112,7 @@ internal partial class AzureRestOperations } HttpStatusCode _statusCode = _httpResponse.StatusCode; cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; + /*string _responseContent = null; if ((int)_statusCode >= 300 && (int)_statusCode < 400) { var ex = new NotImplementedException(string.Format("Redirection status code '{0}' is not supported", _statusCode)); @@ -163,7 +161,7 @@ internal partial class AzureRestOperations { var ex = new CloudException(string.Format("Unknow status code '{0}'", _statusCode)); throw ex; - } + }*/ // Create Result var _result = new AzureOperationResponse(); @@ -174,7 +172,7 @@ internal partial class AzureRestOperations _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); } // Deserialize Response - if ((int)_statusCode == 200) + /*if ((int)_statusCode == 200) { _result.Body = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); } @@ -182,8 +180,10 @@ internal partial class AzureRestOperations { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); return null; - } + }*/ + + _result.Body = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); if (_shouldTrace) { ServiceClientTracing.Exit(_invocationId, _result); From 24b2e4117f4e213948f004b46c26fdea7a15d1bb Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Wed, 3 Jun 2020 14:44:05 +0800 Subject: [PATCH 12/20] remove commented code --- .../AzureRest/AzureRestOperationsExtention.cs | 63 +------------------ 1 file changed, 1 insertion(+), 62 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperationsExtention.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs index 92874a1649..8e73fd91c8 100644 --- a/src/Common/AzureRest/AzureRestOperationsExtention.cs +++ b/src/Common/AzureRest/AzureRestOperationsExtention.cs @@ -112,57 +112,7 @@ internal partial class AzureRestOperations } HttpStatusCode _statusCode = _httpResponse.StatusCode; cancellationToken.ThrowIfCancellationRequested(); - /*string _responseContent = null; - if ((int)_statusCode >= 300 && (int)_statusCode < 400) - { - var ex = new NotImplementedException(string.Format("Redirection status code '{0}' is not supported", _statusCode)); - throw ex; - } - else if ((int)_statusCode >= 400 && (int)_statusCode < 500) - { - var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - else if ((int)_statusCode >= 500 && (int)_statusCode < 600) - { - var ex = new CloudException(string.Format("Server Error with status code '{0}'", _statusCode)); - throw ex; - } - else if ((int)_statusCode < 200 && (int)_statusCode > 600) - { - var ex = new CloudException(string.Format("Unknow status code '{0}'", _statusCode)); - throw ex; - }*/ - + // Create Result var _result = new AzureOperationResponse(); _result.Request = _httpRequest; @@ -171,17 +121,6 @@ internal partial class AzureRestOperations { _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); } - // Deserialize Response - /*if ((int)_statusCode == 200) - { - _result.Body = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - } - if ((int)_statusCode > 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - return null; - }*/ - _result.Body = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); if (_shouldTrace) From 45dc06a522516bc3bf631c854d761595dfabeb24 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Wed, 17 Jun 2020 16:43:21 +0800 Subject: [PATCH 13/20] refactor code to reduce duplicate --- src/Common/AzureRest/AzureRestOperations.cs | 368 ++++++++++++++---- .../AzureRest/AzureRestOperationsExtention.cs | 288 -------------- src/Common/AzureRest/IAzureRestOperations.cs | 36 ++ .../IAzureRestOperationsExtention.cs | 46 --- 4 files changed, 319 insertions(+), 419 deletions(-) delete mode 100644 src/Common/AzureRest/AzureRestOperationsExtention.cs delete mode 100644 src/Common/AzureRest/IAzureRestOperationsExtention.cs diff --git a/src/Common/AzureRest/AzureRestOperations.cs b/src/Common/AzureRest/AzureRestOperations.cs index 62bc61f6e7..95bddaf92e 100644 --- a/src/Common/AzureRest/AzureRestOperations.cs +++ b/src/Common/AzureRest/AzureRestOperations.cs @@ -40,26 +40,6 @@ internal AzureRestOperations(AzureRestClient client) public async Task> BeginHttpMessagesAsync(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - if (path == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "path"); - } - if (path.Length > 0) - { - if (path.StartsWith("/") && Client.EndsWithSlash) - { - path = path.Substring(1); - } - else if (!path.StartsWith("/") && !Client.EndsWithSlash) - { - path = "/" + path; - } - } - - if (method == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "method"); - } // Tracing bool _shouldTrace = ServiceClientTracing.IsEnabled; string _invocationId = null; @@ -70,70 +50,12 @@ internal AzureRestOperations(AzureRestClient client) tracingParameters.Add("cancellationToken", cancellationToken); ServiceClientTracing.Enter(_invocationId, this, "BeginSend", tracingParameters); } - // Construct URL - var _baseUrl = Client.BaseUri.AbsoluteUri; - var _url = new System.Uri(_baseUrl + path).ToString(); - if(queries != null) - { - foreach (string key in queries.Keys) - { - _url += (_url.Contains("?") ? "&" : "?") + key + "=" + string.Join(",", queries[key]); - } - } - if (!String.IsNullOrEmpty(fragment)) - { - _url += "#" + fragment; - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = method; - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - if (customHeaders != null) - { - foreach (var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - if (content != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(content, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + + AzureOperationResponse _generic = await BeginHttpMessagesAsyncGeneric(method, path, queries, fragment, content, customHeaders, cancellationToken).ConfigureAwait(false); + HttpResponseMessage _httpResponse = _generic.Response; + HttpRequestMessage _httpRequest = _generic.Request; + + if (_shouldTrace) { ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); @@ -163,7 +85,7 @@ internal AzureRestOperations(AzureRestClient client) { // Ignore the exception } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _httpRequest.Content.ToString()); ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); if (_httpResponse.Headers.Contains("x-ms-request-id")) { @@ -228,6 +150,7 @@ internal AzureRestOperations(AzureRestClient client) ServiceClientTracing.Exit(_invocationId, _result); } return _result; + } public async Task BeginHttpGetMessagesAsync(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) @@ -320,5 +243,280 @@ internal AzureRestOperations(AzureRestClient client) { return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + + + /*Generic section*/ + public async Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (path == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "path"); + } + if (path.Length > 0) + { + if (path.StartsWith("/") && Client.EndsWithSlash) + { + path = path.Substring(1); + } + else if (!path.StartsWith("/") && !Client.EndsWithSlash) + { + path = "/" + path; + } + } + + if (method == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "method"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "BeginSend", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(_baseUrl + path).ToString(); + if (queries != null) + { + foreach (string key in queries.Keys) + { + _url += (_url.Contains("?") ? "&" : "?") + key + "=" + string.Join(",", queries[key]); + } + } + if (!String.IsNullOrEmpty(fragment)) + { + _url += "#" + fragment; + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = method; + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + if (customHeaders != null) + { + foreach (var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + if (content != null) + { + _httpRequest.Content = new StringContent((string)content, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + + _result.Body = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + public async Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + public async Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + + public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return (_result == null) ? default(string) : _result.Body; + } + } + + public async Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + + return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, + path: resourceUri, + queries: queries, + fragment: null, + content: null, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + + public async Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + using (var _result = await BeginHttpMessagesAsyncGeneric(method: method, + path: resourceUri, + queries: queries, + fragment: null, + content: content, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false)) + { + return (_result == null) ? default(string) : _result.Body; + } + } + + public async Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + IDictionary> queries = new Dictionary>(); + if (apiVersion != null) + { + queries.Add(API_VERSION, new List { apiVersion }); + } + + return await BeginHttpMessagesAsyncGeneric(method: method, + path: resourceUri, + queries: queries, + fragment: null, + content: content, + customHeaders: null, + cancellationToken: cancellationToken).ConfigureAwait(false); + } + + public string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpGetMessagesAsyncGeneric(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpDeleteMessagesAsyncGeneric(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + public string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGeneric(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpGetMessagesAsyncGenericFullResponse(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpDeleteMessagesAsyncGenericFullResponse(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + public AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsyncGenericFullResponse(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } } } diff --git a/src/Common/AzureRest/AzureRestOperationsExtention.cs b/src/Common/AzureRest/AzureRestOperationsExtention.cs deleted file mode 100644 index 8e73fd91c8..0000000000 --- a/src/Common/AzureRest/AzureRestOperationsExtention.cs +++ /dev/null @@ -1,288 +0,0 @@ -using Microsoft.Rest; -using Microsoft.Rest.Azure; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; - -namespace Microsoft.Azure.Internal.Common -{ - internal partial class AzureRestOperations - { - public async Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (path == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "path"); - } - if (path.Length > 0) - { - if (path.StartsWith("/") && Client.EndsWithSlash) - { - path = path.Substring(1); - } - else if (!path.StartsWith("/") && !Client.EndsWithSlash) - { - path = "/" + path; - } - } - - if (method == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "method"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "BeginSend", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri.AbsoluteUri; - var _url = new System.Uri(_baseUrl + path).ToString(); - if(queries != null) - { - foreach (string key in queries.Keys) - { - _url += (_url.Contains("?") ? "&" : "?") + key + "=" + string.Join(",", queries[key]); - } - } - if (!String.IsNullOrEmpty(fragment)) - { - _url += "#" + fragment; - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = method; - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); - } - if (customHeaders != null) - { - foreach (var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - if (content != null) - { - _httpRequest.Content = new StringContent((string)content, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Set Credentials - if (Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - - // Create Result - var _result = new AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - - _result.Body = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - public async Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if(apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, - path: resourceUri, - queries: queries, - fragment: null, - content: null, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - public async Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if(apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, - path: resourceUri, - queries: queries, - fragment: null, - content: null, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false); - } - - public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if (apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, - path: resourceUri, - queries: queries, - fragment: null, - content: null, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return (_result==null)? default(string) : _result.Body; - } - } - - public async Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if (apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - - return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, - path: resourceUri, - queries: queries, - fragment: null, - content: null, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false); - } - - public async Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if (apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: method, - path: resourceUri, - queries: queries, - fragment: null, - content: content, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return (_result==null)? default(string) : _result.Body; - } - } - - public async Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if (apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - - return await BeginHttpMessagesAsyncGeneric(method: method, - path: resourceUri, - queries: queries, - fragment: null, - content: content, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false); - } - - public string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpGetMessagesAsyncGeneric(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpDeleteMessagesAsyncGeneric(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - public string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGeneric(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpGetMessagesAsyncGenericFullResponse(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpDeleteMessagesAsyncGenericFullResponse(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - public AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGenericFullResponse(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - } -} \ No newline at end of file diff --git a/src/Common/AzureRest/IAzureRestOperations.cs b/src/Common/AzureRest/IAzureRestOperations.cs index b41afa6333..614804d7cb 100644 --- a/src/Common/AzureRest/IAzureRestOperations.cs +++ b/src/Common/AzureRest/IAzureRestOperations.cs @@ -105,5 +105,41 @@ public partial interface IAzureRestOperations T PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); T PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /*Generic Section*/ + + Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); } } diff --git a/src/Common/AzureRest/IAzureRestOperationsExtention.cs b/src/Common/AzureRest/IAzureRestOperationsExtention.cs deleted file mode 100644 index 8bacba83be..0000000000 --- a/src/Common/AzureRest/IAzureRestOperationsExtention.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Microsoft.Rest.Azure; -using System; -using System.Collections.Generic; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; - -namespace Microsoft.Azure.Internal.Common -{ - public partial interface IAzureRestOperations - { - Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} \ No newline at end of file From 501a6450381d36c432d4e1e96d5a82a8be5e9c12 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Wed, 17 Jun 2020 17:11:14 +0800 Subject: [PATCH 14/20] add comments to IAzureRestOperations --- src/Common/AzureRest/IAzureRestOperations.cs | 101 +++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/src/Common/AzureRest/IAzureRestOperations.cs b/src/Common/AzureRest/IAzureRestOperations.cs index 614804d7cb..779598725d 100644 --- a/src/Common/AzureRest/IAzureRestOperations.cs +++ b/src/Common/AzureRest/IAzureRestOperations.cs @@ -108,18 +108,119 @@ public partial interface IAzureRestOperations /*Generic Section*/ + /// + /// Support universal HTTP request + /// + /// Http Method + /// The path compoment in URL + /// The queries compoment in URL + /// The fragment compoment in URL + /// The content in request body + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when a required parameter is null + /// Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// GET request to resource URI + /// + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when a required parameter is null + /// Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// DELETE request to resource URI + /// + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when a required parameter is null + /// Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update(PUT, POST, PATCH) request to resource URI + /// + /// Http Method + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The content in request body + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when a required parameter is null + /// Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// GET request to resource URI + /// + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when a required parameter is null + /// Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// DELETE request to resource URI + /// + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when a required parameter is null + /// Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update(PUT, POST, PATCH) request to resource URI + /// + /// Http Method + /// + /// URI represents resource and correlated. Use the format + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} + /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... + /// + /// The API version to use for the operation. + /// The content in request body + /// The headers that will be added to request. + /// The cancellation token. + /// + /// Thrown when a required parameter is null + /// Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); From 60916b595a07e94c75c0e80ae395aadab62c0fd8 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Thu, 18 Jun 2020 15:19:23 +0800 Subject: [PATCH 15/20] serialize payload --- src/Common/AzureRest/AzureRestOperations.cs | 28 ++++++++++++-------- src/Common/AzureRest/IAzureRestOperations.cs | 20 +++++++------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperations.cs b/src/Common/AzureRest/AzureRestOperations.cs index 95bddaf92e..9637306449 100644 --- a/src/Common/AzureRest/AzureRestOperations.cs +++ b/src/Common/AzureRest/AzureRestOperations.cs @@ -51,7 +51,13 @@ internal AzureRestOperations(AzureRestClient client) ServiceClientTracing.Enter(_invocationId, this, "BeginSend", tracingParameters); } - AzureOperationResponse _generic = await BeginHttpMessagesAsyncGeneric(method, path, queries, fragment, content, customHeaders, cancellationToken).ConfigureAwait(false); + string _requestContent = null; + if (content != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(content, Client.SerializationSettings); + } + + AzureOperationResponse _generic = await BeginHttpMessagesAsyncGeneric(method, path, queries, fragment, _requestContent, customHeaders, cancellationToken).ConfigureAwait(false); HttpResponseMessage _httpResponse = _generic.Response; HttpRequestMessage _httpRequest = _generic.Request; @@ -471,50 +477,50 @@ internal AzureRestOperations(AzureRestClient client) cancellationToken: cancellationToken).ConfigureAwait(false); } - public string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string GetResourceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsyncGeneric(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string DeleteResourceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpDeleteMessagesAsyncGeneric(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PutResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PostResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public string PatchResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGeneric(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse GetResourceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsyncGenericFullResponse(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse DeleteResourceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpDeleteMessagesAsyncGenericFullResponse(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse PutResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse PostResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse PatchResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGenericFullResponse(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } diff --git a/src/Common/AzureRest/IAzureRestOperations.cs b/src/Common/AzureRest/IAzureRestOperations.cs index 779598725d..9a70de7307 100644 --- a/src/Common/AzureRest/IAzureRestOperations.cs +++ b/src/Common/AzureRest/IAzureRestOperations.cs @@ -223,24 +223,24 @@ public partial interface IAzureRestOperations /// Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string GetResouceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + string GetResourceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string DeleteResouceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + string DeleteResourceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string PutResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + string PutResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string PostResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + string PostResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string PatchResouceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + string PatchResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - AzureOperationResponse GetResouceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse GetResourceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - AzureOperationResponse DeleteResouceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse DeleteResourceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - AzureOperationResponse PutResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse PutResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - AzureOperationResponse PostResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse PostResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - AzureOperationResponse PatchResouceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse PatchResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); } } From dfa2f9d3ced1b5e1e94d0fbdd0d5b29c23ae82c5 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Thu, 18 Jun 2020 17:40:22 +0800 Subject: [PATCH 16/20] fix API names --- src/Common/AzureRest/AzureRestOperations.cs | 43 +++++++++++++++++++- src/Common/AzureRest/IAzureRestOperations.cs | 21 ++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/src/Common/AzureRest/AzureRestOperations.cs b/src/Common/AzureRest/AzureRestOperations.cs index 9637306449..957d386c41 100644 --- a/src/Common/AzureRest/AzureRestOperations.cs +++ b/src/Common/AzureRest/AzureRestOperations.cs @@ -197,7 +197,6 @@ internal AzureRestOperations(AzureRestClient client) } } - public async Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); @@ -216,40 +215,82 @@ internal AzureRestOperations(AzureRestClient client) return (_result==null)? default(T) : _result.Body; } } + + [Obsolete] public T GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsync(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + [Obsolete] public List GetResouceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsync>(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + [Obsolete] public P GetResoucePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage { return BeginHttpGetMessagesAsync

(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + [Obsolete] public void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { BeginHttpDeleteMessagesAsync(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + [Obsolete] public T PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsync(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + [Obsolete] public T PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsync(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + + [Obsolete] public T PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } + public T GetResource(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpGetMessagesAsync(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public List GetResourceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpGetMessagesAsync>(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public P GetResourcePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage + { + return BeginHttpGetMessagesAsync

(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public void DeleteResource(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + BeginHttpDeleteMessagesAsync(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public T PutResource(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsync(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + + public T PostResource(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsync(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } + public T PatchResource(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + } /*Generic section*/ public async Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) diff --git a/src/Common/AzureRest/IAzureRestOperations.cs b/src/Common/AzureRest/IAzureRestOperations.cs index 9a70de7307..0f359a2755 100644 --- a/src/Common/AzureRest/IAzureRestOperations.cs +++ b/src/Common/AzureRest/IAzureRestOperations.cs @@ -92,20 +92,41 @@ public partial interface IAzureRestOperations /// Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + [Obsolete] T GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + [Obsolete] List GetResouceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + [Obsolete] P GetResoucePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage; + [Obsolete] void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + [Obsolete] T PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + [Obsolete] T PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + [Obsolete] T PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + T GetResource(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + List GetResourceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + P GetResourcePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage; + + void DeleteResource(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + T PutResource(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + T PostResource(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + T PatchResource(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /*Generic Section*/ ///

From d99296a82eb5924bbecd927c54034a130fc8255c Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Thu, 18 Jun 2020 18:34:14 +0800 Subject: [PATCH 17/20] update API names --- src/Common/AzureRest/AzureRestOperations.cs | 34 +++----------------- src/Common/AzureRest/IAzureRestOperations.cs | 20 +++--------- 2 files changed, 10 insertions(+), 44 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperations.cs b/src/Common/AzureRest/AzureRestOperations.cs index 957d386c41..42d843d3e6 100644 --- a/src/Common/AzureRest/AzureRestOperations.cs +++ b/src/Common/AzureRest/AzureRestOperations.cs @@ -518,50 +518,26 @@ internal AzureRestOperations(AzureRestClient client) cancellationToken: cancellationToken).ConfigureAwait(false); } - public string GetResourceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpGetMessagesAsyncGeneric(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public string DeleteResourceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpDeleteMessagesAsyncGeneric(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public string PutResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public string PostResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGeneric(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - public string PatchResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - return BeginHttpUpdateMessagesAsyncGeneric(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); - } - - public AzureOperationResponse GetResourceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse GetResourceWithFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsyncGenericFullResponse(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse DeleteResourceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse DeleteResourceWithFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpDeleteMessagesAsyncGenericFullResponse(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse PutResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse PutResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse PostResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse PostResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - public AzureOperationResponse PatchResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public AzureOperationResponse PatchResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsyncGenericFullResponse(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } diff --git a/src/Common/AzureRest/IAzureRestOperations.cs b/src/Common/AzureRest/IAzureRestOperations.cs index 0f359a2755..5e52a9046f 100644 --- a/src/Common/AzureRest/IAzureRestOperations.cs +++ b/src/Common/AzureRest/IAzureRestOperations.cs @@ -244,24 +244,14 @@ public partial interface IAzureRestOperations /// Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string GetResourceGeneric(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse GetResourceWithFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string DeleteResourceGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse DeleteResourceWithFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string PutResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse PutResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string PostResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse PostResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - string PatchResourceGeneric(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse GetResourceGenericFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse DeleteResourceGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse PutResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse PostResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - AzureOperationResponse PatchResourceGenericFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + AzureOperationResponse PatchResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); } } From afe7680af6d4a9285f0f44aca903f597560f50ba Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Thu, 18 Jun 2020 19:38:23 +0800 Subject: [PATCH 18/20] deprecate old APIs --- src/Common/AzureRest/AzureRestOperations.cs | 14 +++++++------- src/Common/AzureRest/IAzureRestOperations.cs | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperations.cs b/src/Common/AzureRest/AzureRestOperations.cs index 42d843d3e6..ff534b5c50 100644 --- a/src/Common/AzureRest/AzureRestOperations.cs +++ b/src/Common/AzureRest/AzureRestOperations.cs @@ -216,43 +216,43 @@ internal AzureRestOperations(AzureRestClient client) } } - [Obsolete] + [Obsolete("GetResouce is deprecated, please use GetResource instead.", true)] public T GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsync(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - [Obsolete] + [Obsolete("GetResouceList is deprecated, please use GetResourceList instead.", true)] public List GetResouceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpGetMessagesAsync>(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - [Obsolete] + [Obsolete("GetResoucePage is deprecated, please use GetResourcePage instead.", true)] public P GetResoucePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage { return BeginHttpGetMessagesAsync

(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - [Obsolete] + [Obsolete("DeleteResouce is deprecated, please use DeleteResource instead.", true)] public void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { BeginHttpDeleteMessagesAsync(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - [Obsolete] + [Obsolete("PutResouce is deprecated, please use PutResource instead.", true)] public T PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsync(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - [Obsolete] + [Obsolete("PostResouce is deprecated, please use PostResource instead.", true)] public T PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsync(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } - [Obsolete] + [Obsolete("PatchResouce is deprecated, please use PatchResource instead.", true)] public T PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { return BeginHttpUpdateMessagesAsync(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); diff --git a/src/Common/AzureRest/IAzureRestOperations.cs b/src/Common/AzureRest/IAzureRestOperations.cs index 5e52a9046f..5d1ff13905 100644 --- a/src/Common/AzureRest/IAzureRestOperations.cs +++ b/src/Common/AzureRest/IAzureRestOperations.cs @@ -92,25 +92,25 @@ public partial interface IAzureRestOperations /// Task BeginHttpUpdateMessagesAsync(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - [Obsolete] + [Obsolete("GetResouce is deprecated, please use GetResource instead.", true)] T GetResouce(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - [Obsolete] + [Obsolete("GetResouceList is deprecated, please use GetResourceList instead.", true)] List GetResouceList(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - [Obsolete] + [Obsolete("GetResoucePage is deprecated, please use GetResourcePage instead.", true)] P GetResoucePage(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) where P : IPage; - [Obsolete] + [Obsolete("DeleteResouce is deprecated, please use DeleteResource instead.", true)] void DeleteResouce(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - [Obsolete] + [Obsolete("PutResouce is deprecated, please use PutResource instead.", true)] T PutResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - [Obsolete] + [Obsolete("PostResouce is deprecated, please use PostResource instead.", true)] T PostResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - [Obsolete] + [Obsolete("PatchResouce is deprecated, please use PatchResource instead.", true)] T PatchResouce(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); T GetResource(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); From 29d7970489026d14d80fe1a7e81ec998ad346076 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 22 Jun 2020 16:57:04 +0800 Subject: [PATCH 19/20] update API names --- src/Common/AzureRest/AzureRestOperations.cs | 81 +++----------------- src/Common/AzureRest/IAzureRestOperations.cs | 58 +------------- 2 files changed, 16 insertions(+), 123 deletions(-) diff --git a/src/Common/AzureRest/AzureRestOperations.cs b/src/Common/AzureRest/AzureRestOperations.cs index ff534b5c50..f2e36096b2 100644 --- a/src/Common/AzureRest/AzureRestOperations.cs +++ b/src/Common/AzureRest/AzureRestOperations.cs @@ -293,7 +293,7 @@ internal AzureRestOperations(AzureRestClient client) } /*Generic section*/ - public async Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> BeginHttpMessagesAsyncWithFullResponse(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { if (path == null) { @@ -411,33 +411,14 @@ internal AzureRestOperations(AzureRestClient client) return _result; } - public async Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> BeginHttpGetMessagesAsyncWithFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if (apiVersion != null) { queries.Add(API_VERSION, new List { apiVersion }); } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, - path: resourceUri, - queries: queries, - fragment: null, - content: null, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - public async Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if (apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Get, + return await BeginHttpMessagesAsyncWithFullResponse(method: HttpMethod.Get, path: resourceUri, queries: queries, fragment: null, @@ -446,26 +427,7 @@ internal AzureRestOperations(AzureRestClient client) cancellationToken: cancellationToken).ConfigureAwait(false); } - public async Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if (apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, - path: resourceUri, - queries: queries, - fragment: null, - content: null, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return (_result == null) ? default(string) : _result.Body; - } - } - - public async Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> BeginHttpDeleteMessagesAsyncWithFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if (apiVersion != null) @@ -473,7 +435,7 @@ internal AzureRestOperations(AzureRestClient client) queries.Add(API_VERSION, new List { apiVersion }); } - return await BeginHttpMessagesAsyncGeneric(method: HttpMethod.Delete, + return await BeginHttpMessagesAsyncWithFullResponse(method: HttpMethod.Delete, path: resourceUri, queries: queries, fragment: null, @@ -482,26 +444,7 @@ internal AzureRestOperations(AzureRestClient client) cancellationToken: cancellationToken).ConfigureAwait(false); } - public async Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - IDictionary> queries = new Dictionary>(); - if (apiVersion != null) - { - queries.Add(API_VERSION, new List { apiVersion }); - } - using (var _result = await BeginHttpMessagesAsyncGeneric(method: method, - path: resourceUri, - queries: queries, - fragment: null, - content: content, - customHeaders: null, - cancellationToken: cancellationToken).ConfigureAwait(false)) - { - return (_result == null) ? default(string) : _result.Body; - } - } - - public async Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + public async Task> BeginHttpUpdateMessagesAsyncWithFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary> queries = new Dictionary>(); if (apiVersion != null) @@ -509,7 +452,7 @@ internal AzureRestOperations(AzureRestClient client) queries.Add(API_VERSION, new List { apiVersion }); } - return await BeginHttpMessagesAsyncGeneric(method: method, + return await BeginHttpMessagesAsyncWithFullResponse(method: method, path: resourceUri, queries: queries, fragment: null, @@ -520,26 +463,26 @@ internal AzureRestOperations(AzureRestClient client) public AzureOperationResponse GetResourceWithFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpGetMessagesAsyncGenericFullResponse(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpGetMessagesAsyncWithFullResponse(resourceId, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } public AzureOperationResponse DeleteResourceWithFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpDeleteMessagesAsyncGenericFullResponse(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpDeleteMessagesAsyncWithFullResponse(resourceUri, apiVersion, customHeaders, cancellationToken).GetAwaiter().GetResult(); } public AzureOperationResponse PutResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsyncWithFullResponse(HttpMethod.Put, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } public AzureOperationResponse PostResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsyncWithFullResponse(HttpMethod.Post, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } public AzureOperationResponse PatchResourceWithFullResponse(string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - return BeginHttpUpdateMessagesAsyncGenericFullResponse(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); + return BeginHttpUpdateMessagesAsyncWithFullResponse(PATCH, resourceUri, apiVersion, content, customHeaders, cancellationToken).GetAwaiter().GetResult(); } } } diff --git a/src/Common/AzureRest/IAzureRestOperations.cs b/src/Common/AzureRest/IAzureRestOperations.cs index 5d1ff13905..1de8c8563d 100644 --- a/src/Common/AzureRest/IAzureRestOperations.cs +++ b/src/Common/AzureRest/IAzureRestOperations.cs @@ -142,7 +142,7 @@ public partial interface IAzureRestOperations /// /// Thrown when a required parameter is null /// - Task> BeginHttpMessagesAsyncGeneric(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + Task> BeginHttpMessagesAsyncWithFullResponse(HttpMethod method, string path, IDictionary> queries = null, string fragment = null, Object content = null, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); ///

/// GET request to resource URI @@ -158,7 +158,7 @@ public partial interface IAzureRestOperations /// /// Thrown when a required parameter is null /// - Task BeginHttpGetMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + Task> BeginHttpGetMessagesAsyncWithFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); /// /// DELETE request to resource URI @@ -174,7 +174,7 @@ public partial interface IAzureRestOperations /// /// Thrown when a required parameter is null /// - Task BeginHttpDeleteMessagesAsyncGeneric(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + Task> BeginHttpDeleteMessagesAsyncWithFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); /// /// Update(PUT, POST, PATCH) request to resource URI @@ -192,57 +192,7 @@ public partial interface IAzureRestOperations /// /// Thrown when a required parameter is null /// - Task BeginHttpUpdateMessagesAsyncGeneric(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// GET request to resource URI - /// - /// - /// URI represents resource and correlated. Use the format - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... - /// - /// The API version to use for the operation. - /// The headers that will be added to request. - /// The cancellation token. - /// - /// Thrown when a required parameter is null - /// - Task> BeginHttpGetMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// DELETE request to resource URI - /// - /// - /// URI represents resource and correlated. Use the format - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... - /// - /// The API version to use for the operation. - /// The headers that will be added to request. - /// The cancellation token. - /// - /// Thrown when a required parameter is null - /// - Task> BeginHttpDeleteMessagesAsyncGenericFullResponse(string resourceUri, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// Update(PUT, POST, PATCH) request to resource URI - /// - /// Http Method - /// - /// URI represents resource and correlated. Use the format - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name} - /// /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}/... - /// - /// The API version to use for the operation. - /// The content in request body - /// The headers that will be added to request. - /// The cancellation token. - /// - /// Thrown when a required parameter is null - /// - Task> BeginHttpUpdateMessagesAsyncGenericFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + Task> BeginHttpUpdateMessagesAsyncWithFullResponse(HttpMethod method, string resourceUri, string apiVersion, Object content, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); AzureOperationResponse GetResourceWithFullResponse(string resourceId, string apiVersion, IDictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); From 09e7e422abbbece6a756d77d0364924d617a1425 Mon Sep 17 00:00:00 2001 From: Yabo Hu Date: Mon, 22 Jun 2020 17:34:08 +0800 Subject: [PATCH 20/20] typo --- src/Common/AzureRest/AzureRestOperations.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Common/AzureRest/AzureRestOperations.cs b/src/Common/AzureRest/AzureRestOperations.cs index f2e36096b2..dea3a0d955 100644 --- a/src/Common/AzureRest/AzureRestOperations.cs +++ b/src/Common/AzureRest/AzureRestOperations.cs @@ -57,7 +57,7 @@ internal AzureRestOperations(AzureRestClient client) _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(content, Client.SerializationSettings); } - AzureOperationResponse _generic = await BeginHttpMessagesAsyncGeneric(method, path, queries, fragment, _requestContent, customHeaders, cancellationToken).ConfigureAwait(false); + AzureOperationResponse _generic = await BeginHttpMessagesAsyncWithFullResponse(method, path, queries, fragment, _requestContent, customHeaders, cancellationToken).ConfigureAwait(false); HttpResponseMessage _httpResponse = _generic.Response; HttpRequestMessage _httpRequest = _generic.Request;