private void AutomaticUpdate_Load(object sender, EventArgs e) { string module = $"{_product}.{_class}.{MethodBase.GetCurrentMethod().Name}()"; try { if (TopLeft.X != 0 && TopLeft.Y != 0) { Left = (int)TopLeft.X; Top = (int)TopLeft.Y; } string currentVersionNumber = CurrentVersion.Root.Element("Number").Value; DateTime currentReleaseDate = SafeDate.Parse(CurrentVersion.Root.Element("Released").Value); lblInfo.Text = "Your current version of Chem4Word is " + currentVersionNumber + "; Released " + SafeDate.ToShortDate(currentReleaseDate); _telemetry.Write(module, "AutomaticUpdate", lblInfo.Text); var versions = NewVersions.XPathSelectElements("//Version"); foreach (var version in versions) { if (string.IsNullOrEmpty(_downloadUrl)) { _downloadUrl = version.Element("Url").Value; } var thisVersionNumber = version.Element("Number").Value; DateTime thisVersionDate = SafeDate.Parse(version.Element("Released").Value); if (currentReleaseDate >= thisVersionDate) { break; } AddHeaderLine("Version " + thisVersionNumber + "; Released " + SafeDate.ToShortDate(thisVersionDate), Color.Blue); var changes = version.XPathSelectElements("Changes/Change"); foreach (var change in changes) { if (change.Value.StartsWith("Note:")) { AddBulletItem(change.Value.Remove(0, 6), Color.Red); } else { AddBulletItem(change.Value, Color.Black); } } } } catch (Exception ex) { new ReportError(_telemetry, TopLeft, module, ex).ShowDialog(); } }
public static bool FetchUpdateInfo() { string module = $"{_product}.{_class}.{MethodBase.GetCurrentMethod().Name}()"; bool updateRequired = false; Globals.Chem4WordV3.VersionsBehind = 0; var assembly = Assembly.GetExecutingAssembly(); ReadThisVersion(assembly); if (Globals.Chem4WordV3.ThisVersion != null) { string currentVersionNumber = Globals.Chem4WordV3.ThisVersion.Root.Element("Number").Value; DateTime currentReleaseDate = SafeDate.Parse(Globals.Chem4WordV3.ThisVersion.Root.Element("Released").Value); Debug.WriteLine("Current Version " + currentVersionNumber + " Released " + SafeDate.ToShortDate(currentReleaseDate)); string xml = GetVersionsXmlFile(); if (!string.IsNullOrEmpty(xml)) { #region Got Our File Globals.Chem4WordV3.AllVersions = XDocument.Parse(xml); var versions = Globals.Chem4WordV3.AllVersions.XPathSelectElements("//Version"); foreach (var version in versions) { var thisVersionNumber = version.Element("Number").Value; DateTime thisVersionDate = SafeDate.Parse(version.Element("Released").Value); Debug.WriteLine("New Version " + thisVersionNumber + " Released " + SafeDate.ToShortDate(thisVersionDate)); if (thisVersionDate > currentReleaseDate) { Globals.Chem4WordV3.VersionsBehind++; updateRequired = true; } } // Save VersionsBehind and Last Checked for next start up Debug.WriteLine($"Saving Versions Behind in Registry: {Globals.Chem4WordV3.VersionsBehind}"); RegistryKey key = Registry.CurrentUser.CreateSubKey(Constants.Chem4WordRegistryKey); key?.SetValue(Constants.RegistryValueNameVersionsBehind, Globals.Chem4WordV3.VersionsBehind.ToString()); #endregion Got Our File } } else { Globals.Chem4WordV3.Telemetry.Write(module, "Error", "Failed to parse resource 'Data.This-Version.xml'"); } return(updateRequired); }