private static void DownloadUpdates(string downloadPath, UIElement control) { if (Directory.Exists(AuxiliaryDirectory)) { OnUpdateDialogClose(null, null); } CreateDirectory(AuxiliaryDirectory); if (DownloadSpecificFile(downloadPath + versionFileName + compressedFilesExtension, AuxiliaryDirectory + versionFileName)) { var newerVersion = DeserializeFromXml(AuxiliaryDirectory + versionFileName); if (NewerVersion(newerVersion.VersionData.VersionName)) { var nightlyDownload = false; if (downloadPath == NaroNightlyLink) { nightlyDownload = true; } UpdaterWindowsManager.ShowWindow(newerVersion.VersionData.VersionChanges, _actionGraph, nightlyDownload, control); UpdaterWindowsManager.DownloadUpdatesWindow.Closed += OnUpdateDialogClose; UpdaterWindowsManager.DownloadWindowLoop(); } else { DeleteDirectory(AuxiliaryDirectory); } } }
private static void OnUpdateDialogClose(object sender, EventArgs e) { var currentVersionData = DeserializeFromXml(versionFileName); var currentVersionFiles = currentVersionData.ListOfFiles; var newerVersion = DeserializeFromXml(AuxiliaryDirectory + versionFileName); DownloadUpdateFiles(_pathToDownload, currentVersionFiles, newerVersion); Log.Info("Ended updater logic"); if (Directory.Exists(HelperDownloadDirectory)) { UpdaterWindowsManager.ShowDownloadsFinishedWindow(new List <string> { "", "Updates have been downloaded.", "The updates will apply the next time you start NaroCAD." }); UpdaterWindowsManager.DownloadFinishedLoop(); } }
public static void Main(object data) { var logic = (UpdateLogic)data; Log.Info("Started updater logic"); CalculateLengthOfNaroVersions(); DeleteDirectory(FailedUpdateDirectory); VersionObject currentVersionData; try { currentVersionData = DeserializeFromXml(versionFileName); } catch { Log.Error("The versioning file is corrupt."); DeleteDirectory(AuxiliaryDirectory); DeleteFile(HelperVersioningFile); NaroMessage.Show("The versioning file is corrupt. It is recomanded to download and reinstall NaroCAD."); return; } CalculateNaroVersion(currentVersionData); if (MainUpdateWasJustDone()) { if (AttemptToFinalizeUpdate(currentVersionData.GetListOfFiles(), DeserializeFromXml(HelperVersioningFile).GetListOfFiles())) { Log.Info("NaroCAD update successfully compleated"); UpdaterWindowsManager.ShowDownloadsFinishedWindow(new List <string> { "", "Update Successfully Compleated", "Enjoy NaroCAD" }); UpdaterWindowsManager.DownloadFinishedLoop(); } } AttemptToDownloadUpdateFiles(_control); }