public static CloudException Make404Exception() { return(CloudException.CreateFromXml( new HttpRequestMessage(), null, new HttpResponseMessage(HttpStatusCode.NotFound), "<Error><Message>Not found</Message></Error>")); }
/// <param name='cancellationToken'> /// Cancellation token. /// </param> /// <returns> /// A standard service response including an HTTP status code and /// request ID. /// </returns> public async Task <SubscriptionListOperationResponse> ListAsync(CancellationToken cancellationToken) { // Validate // Tracing bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled; string invocationId = null; if (shouldTrace) { invocationId = Tracing.NextInvocationId.ToString(); Dictionary <string, object> tracingParameters = new Dictionary <string, object>(); Tracing.Enter(invocationId, this, "ListAsync", tracingParameters); } // Construct URL string url = this.Client.BaseUri + "/subscriptions"; // Create HTTP transport objects HttpRequestMessage httpRequest = null; try { httpRequest = new HttpRequestMessage(); httpRequest.Method = HttpMethod.Get; httpRequest.RequestUri = new Uri(url); // Set Headers httpRequest.Headers.Add("x-ms-version", "2013-08-01"); // Set Credentials cancellationToken.ThrowIfCancellationRequested(); await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); // Send Request HttpResponseMessage httpResponse = null; try { if (shouldTrace) { Tracing.SendRequest(invocationId, httpRequest); } cancellationToken.ThrowIfCancellationRequested(); httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); if (shouldTrace) { Tracing.ReceiveResponse(invocationId, httpResponse); } HttpStatusCode statusCode = httpResponse.StatusCode; if (statusCode != HttpStatusCode.OK) { cancellationToken.ThrowIfCancellationRequested(); CloudException ex = CloudException.CreateFromXml(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)); if (shouldTrace) { Tracing.Error(invocationId, ex); } throw ex; } // Create Result SubscriptionListOperationResponse result = new SubscriptionListOperationResponse(); result.StatusCode = statusCode; if (httpResponse.Headers.Contains("x-ms-request-id")) { result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); } // Deserialize Response cancellationToken.ThrowIfCancellationRequested(); string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); XDocument responseDoc = XDocument.Parse(responseContent); XElement subscriptionsElement = responseDoc.Element(XName.Get("Subscriptions", "http://schemas.microsoft.com/windowsazure")); if (subscriptionsElement != null) { if (subscriptionsElement != null) { foreach (XElement subscriptionsElement2 in subscriptionsElement.Elements(XName.Get("Subscription", "http://schemas.microsoft.com/windowsazure"))) { SubscriptionListOperationResponse.Subscription subscriptionInstance = new SubscriptionListOperationResponse.Subscription(); result.Subscriptions.Add(subscriptionInstance); XElement subscriptionIDElement = subscriptionsElement2.Element(XName.Get("SubscriptionID", "http://schemas.microsoft.com/windowsazure")); if (subscriptionIDElement != null) { string subscriptionIDInstance = subscriptionIDElement.Value; subscriptionInstance.SubscriptionId = subscriptionIDInstance; } XElement subscriptionNameElement = subscriptionsElement2.Element(XName.Get("SubscriptionName", "http://schemas.microsoft.com/windowsazure")); if (subscriptionNameElement != null) { string subscriptionNameInstance = subscriptionNameElement.Value; subscriptionInstance.SubscriptionName = subscriptionNameInstance; } XElement subscriptionStatusElement = subscriptionsElement2.Element(XName.Get("SubscriptionStatus", "http://schemas.microsoft.com/windowsazure")); if (subscriptionStatusElement != null) { SubscriptionStatus subscriptionStatusInstance = (SubscriptionStatus)Enum.Parse(typeof(SubscriptionStatus), subscriptionStatusElement.Value, false); subscriptionInstance.SubscriptionStatus = subscriptionStatusInstance; } XElement accountAdminLiveEmailIdElement = subscriptionsElement2.Element(XName.Get("AccountAdminLiveEmailId", "http://schemas.microsoft.com/windowsazure")); if (accountAdminLiveEmailIdElement != null) { string accountAdminLiveEmailIdInstance = accountAdminLiveEmailIdElement.Value; subscriptionInstance.AccountAdminLiveEmailId = accountAdminLiveEmailIdInstance; } XElement serviceAdminLiveEmailIdElement = subscriptionsElement2.Element(XName.Get("ServiceAdminLiveEmailId", "http://schemas.microsoft.com/windowsazure")); if (serviceAdminLiveEmailIdElement != null) { string serviceAdminLiveEmailIdInstance = serviceAdminLiveEmailIdElement.Value; subscriptionInstance.ServiceAdminLiveEmailId = serviceAdminLiveEmailIdInstance; } XElement maxCoreCountElement = subscriptionsElement2.Element(XName.Get("MaxCoreCount", "http://schemas.microsoft.com/windowsazure")); if (maxCoreCountElement != null) { int maxCoreCountInstance = int.Parse(maxCoreCountElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.MaximumCoreCount = maxCoreCountInstance; } XElement maxStorageAccountsElement = subscriptionsElement2.Element(XName.Get("MaxStorageAccounts", "http://schemas.microsoft.com/windowsazure")); if (maxStorageAccountsElement != null) { int maxStorageAccountsInstance = int.Parse(maxStorageAccountsElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.MaximumStorageAccounts = maxStorageAccountsInstance; } XElement maxHostedServicesElement = subscriptionsElement2.Element(XName.Get("MaxHostedServices", "http://schemas.microsoft.com/windowsazure")); if (maxHostedServicesElement != null) { int maxHostedServicesInstance = int.Parse(maxHostedServicesElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.MaximumHostedServices = maxHostedServicesInstance; } XElement currentCoreCountElement = subscriptionsElement2.Element(XName.Get("CurrentCoreCount", "http://schemas.microsoft.com/windowsazure")); if (currentCoreCountElement != null) { int currentCoreCountInstance = int.Parse(currentCoreCountElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.CurrentCoreCount = currentCoreCountInstance; } XElement currentStorageAccountsElement = subscriptionsElement2.Element(XName.Get("CurrentStorageAccounts", "http://schemas.microsoft.com/windowsazure")); if (currentStorageAccountsElement != null) { int currentStorageAccountsInstance = int.Parse(currentStorageAccountsElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.CurrentStorageAccounts = currentStorageAccountsInstance; } XElement currentHostedServicesElement = subscriptionsElement2.Element(XName.Get("CurrentHostedServices", "http://schemas.microsoft.com/windowsazure")); if (currentHostedServicesElement != null) { int currentHostedServicesInstance = int.Parse(currentHostedServicesElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.CurrentHostedServices = currentHostedServicesInstance; } XElement maxVirtualNetworkSitesElement = subscriptionsElement2.Element(XName.Get("MaxVirtualNetworkSites", "http://schemas.microsoft.com/windowsazure")); if (maxVirtualNetworkSitesElement != null) { int maxVirtualNetworkSitesInstance = int.Parse(maxVirtualNetworkSitesElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.MaximumVirtualNetworkSites = maxVirtualNetworkSitesInstance; } XElement maxLocalNetworkSitesElement = subscriptionsElement2.Element(XName.Get("MaxLocalNetworkSites", "http://schemas.microsoft.com/windowsazure")); if (maxLocalNetworkSitesElement != null) { int maxLocalNetworkSitesInstance = int.Parse(maxLocalNetworkSitesElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.MaximumLocalNetworkSites = maxLocalNetworkSitesInstance; } XElement maxDnsServersElement = subscriptionsElement2.Element(XName.Get("MaxDnsServers", "http://schemas.microsoft.com/windowsazure")); if (maxDnsServersElement != null) { int maxDnsServersInstance = int.Parse(maxDnsServersElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.MaximumDnsServers = maxDnsServersInstance; } XElement maxExtraVIPCountElement = subscriptionsElement2.Element(XName.Get("MaxExtraVIPCount", "http://schemas.microsoft.com/windowsazure")); if (maxExtraVIPCountElement != null) { int maxExtraVIPCountInstance = int.Parse(maxExtraVIPCountElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.MaximumExtraVirtualIPCount = maxExtraVIPCountInstance; } XElement aADTenantIDElement = subscriptionsElement2.Element(XName.Get("AADTenantID", "http://schemas.microsoft.com/windowsazure")); if (aADTenantIDElement != null) { string aADTenantIDInstance = aADTenantIDElement.Value; subscriptionInstance.ActiveDirectoryTenantId = aADTenantIDInstance; } XElement createdTimeElement = subscriptionsElement2.Element(XName.Get("CreatedTime", "http://schemas.microsoft.com/windowsazure")); if (createdTimeElement != null) { DateTime createdTimeInstance = DateTime.Parse(createdTimeElement.Value, CultureInfo.InvariantCulture); subscriptionInstance.Created = createdTimeInstance; } } } } if (shouldTrace) { Tracing.Exit(invocationId, result); } return(result); } finally { if (httpResponse != null) { httpResponse.Dispose(); } } } finally { if (httpRequest != null) { httpRequest.Dispose(); } } }