private bool TryToDownloadOrUpdateVersionsFile() { string url; if (File.Exists("config\\versions.json") && (DateTime.Now - config.LastUpdateChecked).TotalDays < 1) { return(true); } try { url = FindResource("VersionsFileUrl").ToString(); if (config.UseProxy) { DownloadManagerService.DownloadFileSyncWithProxy(url, "config\\versions.json", config.ProxyUrl, config.ProxyPort); } else { DownloadManagerService.DownloadFileSync(url, "config\\versions.json"); } } catch (Exception ex) { logger.Error(ex); CommonUtilsService.PopupExceptionMessage("Error while downloading versions", ex); } config.LastUpdateChecked = DateTime.Now; return(true); }
private void DownloadAndExtractVersion(GodotVersion selectedVersion) { string fileName; try { fileName = config.UseProxy ? DownloadManagerService.DownloadFileSyncWithProxy(selectedVersion.VersionUrl, "temp", config.ProxyUrl, config.ProxyPort, true) : DownloadManagerService.DownloadFileSync(selectedVersion.VersionUrl, "temp", true); } catch (Exception ex) { throw ex; } var extractedFiles = ZipService.UnzipFile(fileName, $"{config.GodotInstallLocation}\\{selectedVersion.VersionName}"); File.Delete(fileName); foreach (var file in extractedFiles) { versionService.InstalledVersions.Add(new GodotVersionInstalled { VersionId = selectedVersion.VersionId, VersionName = selectedVersion.VersionName, BitNum = selectedVersion.BitNum, IsMono = selectedVersion.IsMono, IsStable = selectedVersion.IsStable, InstallPath = file.Replace(@"/", @"\\"), }); } JsonConverterService <List <GodotVersionInstalled> > .Serialize(versionService.InstalledVersions, $"{config.GodotInstallLocation}\\manifest.json"); Dispatcher.Invoke(new Action(() => BuildVersionsTree())); Dispatcher.Invoke(new Action(() => CommonUtilsService.PopupInfoMessage("Info", "Godot version installed successfully!"))); }