private void CheckUpdatesAsync(UpdateCheckerResultHandler ResultHandler)
        {
            RequestState state = new RequestState();

            foreach (var url in UrlsToCheck)
            {
                state.Urls.Enqueue(url);
            }

            if (state.Urls.Count == 0)
            {
                throw new InvalidOperationException("No update URLS defined");
            }

            CheckUpdateOnQueueAsync(ResultHandler, state);
        }
Beispiel #2
0
        private void CheckUpdatesAsync(UpdateCheckerResultHandler ResultHandler)
        {
            #if DEBUG
            string url = @"https://dl.dropbox.com/u/79336477/update.xml";
                        #else
            string url = @"http://sourceforge.net/projects/v8reader/files/update.xml/download";
                        #endif

            HttpWebRequest client = (HttpWebRequest)HttpWebRequest.Create(url);
            client.AllowAutoRedirect = true;
            client.Proxy             = WebRequest.DefaultWebProxy;
            client.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

            RequestState state = new RequestState();
            state.request       = client;
            state.ResultHandler = ResultHandler;

            IAsyncResult result = (IAsyncResult)client.BeginGetResponse(GUIContextCallback(DownloadFileCompleted), state);
        }
        private void CheckUpdateOnQueueAsync(UpdateCheckerResultHandler ResultHandler, RequestState state)
        {
            var    reqState = (RequestState)state;
            string url;

            try
            {
                url = reqState.Urls.Dequeue();
            }
            catch (InvalidOperationException)
            {
                var result = new UpdateCheckerResult();
                result.Success = false;
                if (reqState.LastError != null)
                {
                    throw new UpdaterException(reqState.LastError);
                }
                else
                {
                    throw new UpdaterException("Ни один из адресов автообновления не вернул корректный ответ");
                }
            }

            HttpWebRequest client = (HttpWebRequest)HttpWebRequest.Create(url);

            client.Accept            = "application/xml";
            client.UserAgent         = "DBManager Autoupdate " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            client.AllowAutoRedirect = true;
            client.Proxy             = WebRequest.DefaultWebProxy;
            client.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

            state.request       = client;
            state.ResultHandler = ResultHandler;

            client.BeginGetResponse(GUIContextCallback(DownloadFileCompleted), reqState);
        }
Beispiel #4
0
 public void CheckUpdates(UpdateCheckerResultHandler ResultHandler)
 {
     CheckUpdatesAsync(ResultHandler);
 }