public Task Install(VersionInfo latest) { return(Task.Factory.StartNew(() => DownloadAndInstall(latest.Stable, latest.StableAddress))); }
private void OnVersionChecked(Task<VersionInfo> task, bool addNotificationWhenUpToDate) { try { VersionInfo latestVersion = task.Result; LatestVersion = latestVersion; Version latest = latestVersion.Stable; Version current = AppVersion; if (current != null && latest != null && latest > current) { var message = string.Format("A newer version ({0}) is available to be downloaded", latest); Log.InfoFormat(message); _actionCenter.Add(Notification.CreateInfo("Check for updates", message)); } else { const string message = "Running the latest version"; Log.InfoFormat(message); if (addNotificationWhenUpToDate) { _actionCenter.Add(Notification.CreateInfo("Check for updates", message)); } } } catch (Exception e) { Log.ErrorFormat("Caught unexpected exception while querying newest version: {0}", e); } }
internal static void Parse(byte[] data, out VersionInfo latestVersions) { latestVersions = new VersionInfo(null, null, null, null); using (var stream = new MemoryStream(data)) using (XmlReader reader = XmlReader.Create(stream)) { while (reader.Read()) { switch (reader.Name) { case "versions": ReadVersions(reader.ReadSubtree(), out latestVersions); break; } } } }
private static void ReadVersions(XmlReader versions, out VersionInfo latestVersions) { Version beta = null; Uri betaAddress = null; Version stable = null; Uri stableAddress = null; while (versions.Read()) { switch (versions.Name) { case "stable": stable = ReadVersion(versions, out stableAddress); break; case "beta": beta = ReadVersion(versions, out betaAddress); break; } } latestVersions = new VersionInfo(beta, betaAddress, stable, stableAddress); }
public Task Install(VersionInfo latest) { return Task.Factory.StartNew(() => DownloadAndInstall(latest.Stable, latest.StableAddress)); }