/// <summary>
 /// The Get Operation Status operation returns the status of
 /// thespecified operation. After calling a long-running operation,
 /// you can call Get Operation Status to determine whether the
 /// operation has succeeded, failed, timed out, or is still in
 /// progress.  (see
 /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460783.aspx
 /// for more information)
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.WebSites.IWebSiteManagementClient.
 /// </param>
 /// <param name='webSpaceName'>
 /// The name of the webspace for the website where the operation was
 /// targeted.
 /// </param>
 /// <param name='siteName'>
 /// The name of the site where the operation was targeted.
 /// </param>
 /// <param name='operationId'>
 /// The operation ID for the operation you wish to track. The operation
 /// ID is returned in the Id field in the body of the response for
 /// long-running operations.
 /// </param>
 /// <returns>
 /// The response body contains the status of the specified long-running
 /// operation, indicating whether it has succeeded, is inprogress, has
 /// time dout, or has failed. Note that this status is distinct from
 /// the HTTP status code returned for the Get Operation Status
 /// operation itself.  If the long-running operation failed, the
 /// response body includes error information regarding the failure.
 /// </returns>
 public static WebSiteOperationStatusResponse GetOperationStatus(this IWebSiteManagementClient operations, string webSpaceName, string siteName, string operationId)
 {
     try
     {
         return(operations.GetOperationStatusAsync(webSpaceName, siteName, operationId).Result);
     }
     catch (AggregateException ex)
     {
         if (ex.InnerExceptions.Count > 1)
         {
             throw;
         }
         else
         {
             throw ex.InnerException;
         }
     }
 }
 /// <summary>
 /// The Get Operation Status operation returns the status of the
 /// specified operation. After calling a long-running operation, you
 /// can call Get Operation Status to determine whether the operation
 /// has succeeded, failed, timed out, or is still in progress.  (see
 /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460783.aspx
 /// for more information)
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.WebSites.IWebSiteManagementClient.
 /// </param>
 /// <param name='webSpaceName'>
 /// Required. The name of the webspace for the website where the
 /// operation was targeted.
 /// </param>
 /// <param name='siteName'>
 /// Required. The name of the site where the operation was targeted.
 /// </param>
 /// <param name='operationId'>
 /// Required. The operation ID for the operation you wish to track. The
 /// operation ID is returned in the ID field in the body of the
 /// response for long-running operations.
 /// </param>
 /// <returns>
 /// The response body contains the status of the specified long-running
 /// operation, indicating whether it has succeeded, is inprogress, has
 /// timed out, or has failed. Note that this status is distinct from
 /// the HTTP status code returned for the Get Operation Status
 /// operation itself. If the long-running operation failed, the
 /// response body includes error information regarding the failure.
 /// </returns>
 public static Task <WebSiteOperationStatusResponse> GetOperationStatusAsync(this IWebSiteManagementClient operations, string webSpaceName, string siteName, string operationId)
 {
     return(operations.GetOperationStatusAsync(webSpaceName, siteName, operationId, CancellationToken.None));
 }