Example #1
0
        private void OnUpdateVersionRequested(object sender, OpenReadCompletedEventArgs e)
        {
            if (null == e || e.Error != null)
            {
                string errorMessage = "Unspecified error";
                if (null != e && (null != e.Error))
                {
                    errorMessage = e.Error.Message;
                }

                logger.LogError("UpdateManager-OnUpdateVersionRequested",
                                string.Format("Request failure: {0}", errorMessage));

                versionCheckInProgress = false;
                return;
            }

            List <string> versionInfo = new List <string>();

            using (StreamReader streamReader = new StreamReader(e.Result))
            {
                string line;
                while (!string.IsNullOrEmpty(line = streamReader.ReadLine()))
                {
                    versionInfo.Add(line);
                }
            }

            if (versionInfo.Count != 3)
            {
                versionCheckInProgress = false;
                return;
            }

            updateInfo = new AppVersionInfo()
            {
                Version        = BinaryVersion.FromString(versionInfo[0]),
                VersionInfoURL = versionInfo[1],
                InstallerURL   = versionInfo[2]
            };

            logger.LogInfo("UpdateManager-OnUpdateVersionRequested",
                           string.Format("Product Version: {0} Available Version : {1}",
                                         ProductVersion.ToString(), AvailableVersion.ToString()));

            if (updateInfo.Value.Version <= this.ProductVersion)
            {
                versionCheckInProgress = false;
                return; // Up-to-date, no download required.
            }

            DownloadUpdatePackage(updateInfo.Value.InstallerURL, updateInfo.Value.Version);
        }