public void BeginProcess(ProjectLoadForm.UpdateCallbacks callbacks) { callbacks.UpdateInfoLabel(Lang.Get["LoadArchiveExtracting"]); ZipArchive archive = new ZipArchive(file, extractPath); cancel = archive.ExtractAsync(path => { callbacks.OnReady(new FileSearch(new string[] { path })); archive.Dispose(); }); }
public void BeginProcess(ProjectLoadForm.UpdateCallbacks callbacks) { string tmpDir = IOUtils.CreateTemporaryDirectory(); string tmpFile = tmpDir == null ? "github.zip" : Path.Combine(tmpDir, "github.zip"); DownloadProgressChanged = (sender, args) => { callbacks.UpdateProgress(args.TotalBytesToReceive == -1 ? -1 : args.ProgressPercentage); callbacks.UpdateDataLabel(args.TotalBytesToReceive == -1 ? (args.BytesReceived / 1024) + " kB" : (args.BytesReceived / 1024) + " / " + (args.TotalBytesToReceive / 1024) + " kB"); }; DownloadFinished = (sender, args) => { if (args.Cancelled) // apparently randomly throws IOException and ObjectDisposedException... WHAT THE F**K .NET { if (CancelFinish != null) { CancelFinish(); } return; } if (args.Error != null) { callbacks.UpdateInfoLabel(Lang.Get["LoadGitHubDownloadError"]); return; } callbacks.UpdateInfoLabel(Lang.Get["LoadGitHubExtractingRepo"]); ZipArchive archive = new ZipArchive(tmpFile); dlRepoCancel = archive.ExtractAsync(path => { callbacks.OnReady(new FileSearch(new string[] { path })); archive.DeleteAndDispose(); }); }; switch (DownloadRepositoryZip(tmpFile)) { case DownloadStatus.Started: callbacks.UpdateInfoLabel(Lang.Get["LoadGitHubDownloadingRepo"]); break; case DownloadStatus.NoInternet: callbacks.UpdateInfoLabel(Lang.Get["LoadGitHubNoInternet"]); break; case DownloadStatus.NoConnection: callbacks.UpdateInfoLabel(Lang.Get["LoadGitHubNoEstablishedConnection"]); break; } }
public void BeginProcess(ProjectLoadForm.UpdateCallbacks callbacks) { callbacks.OnReady(new FileSearch(new string[0])); }
public void BeginProcess(ProjectLoadForm.UpdateCallbacks callbacks) { callbacks.OnReady(this); }