Esempio n. 1
0
        /// <summary>
        /// This method makes a callback to an AsyncResponseParser and takes a service management request and certificate and sends a request to 
        /// the management endpoint
        /// </summary>
        public static Task<WebResponse> MakeASyncRequest(ServiceManagementRequest serviceManagementRequest, ServiceManager.AsyncResponseParser parser, ServiceManager.AsyncResponseException error)
        {
            if (ServicePointManager.ServerCertificateValidationCallback == null)
                ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;
            ServicePointManager.DefaultConnectionLimit = 40;

            HttpWebRequest request = BuildAzureHttpRequest(serviceManagementRequest);

            return Task<WebResponse>.Factory
                .FromAsync(request.BeginGetResponse, request.EndGetResponse, null)
                .ContinueWith<WebResponse>(task =>
                                  {
                                      if (task.Exception != null)
                                      {
                                          if(task.Exception.InnerException.GetType() == typeof(WebException))
                                            error((WebException)task.Exception.InnerException);
                                          return null;
                                      }
                                      var response = (HttpWebResponse)task.Result;
                                      parser(response);
                                      return response;
                                  });
            //IAsyncResult result = request.BeginGetResponse((asyncResult) =>
            //                        {
            //                            try
            //                            {
            //                                var response = (HttpWebResponse)request.EndGetResponse(asyncResult);
            //                                parser(response);
            //                            }
            //                            catch (WebException ex) { error(ex);}
            //                        }, null);
        }
 public void MakeASyncRequest(ServiceManagementRequest serviceManagementRequest, ServiceManager.AsyncResponseParser parser)
 {
     MakeASyncRequest(serviceManagementRequest, parser, null);
 }