static void OnUpdateDownloadCompleted(UpdateDownloadComplededEventArgs e) { if(UpdateDownloadCompleted != null) UpdateDownloadCompleted(e); }
static void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) { UpdateDownloadComplededEventArgs args = new UpdateDownloadComplededEventArgs(); if(e.Cancelled) args.Result = UpdateDownloadComplededResult.Canceled; else if(e.Error != null) { args.Result = UpdateDownloadComplededResult.InternalError; args.Error = e.Error; } else { AsyncArgs state = (AsyncArgs)e.UserState; try { FastZip zip = new FastZip(); zip.ExtractZip( Path.Combine(downloadFolder, state.ArchiveName), downloadFolder, FastZip.Overwrite.Always, null, string.Empty, string.Empty); System.Threading.Thread.Sleep(3000); File.Delete(Path.Combine(downloadFolder, state.ArchiveName)); args.Result = UpdateDownloadComplededResult.Ready; } catch(Exception ex) { args.Result = UpdateDownloadComplededResult.IOError; args.Error = ex; } args.UpdateProcessPath = Path.Combine(downloadFolder, state.UpdaterExeName); args.UpdateProcessCommandLine = string.Concat( "\"", UPDATER_KEY, "\" ", "\"", thisFolder, "\" ", state.CommandLineArgs.Aggregate(string.Empty, (aggregator, cmd) => string.Concat(aggregator, " \"", cmd, "\""))); } OnUpdateDownloadCompleted(args); }
void AutoUpdater_UpdateDownloadCompleted(UpdateDownloadComplededEventArgs args) { if(this.InvokeRequired) this.Invoke(new Action<UpdateDownloadComplededEventArgs>(AutoUpdater_UpdateDownloadCompleted), args); else { btnCancelClose.Enabled = true; this.Args = args; Localize(); } }