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); }
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); }
public void CheckUpdates(UpdateCheckerResultHandler ResultHandler) { CheckUpdatesAsync(ResultHandler); }