private void CheckForUpdates()
 {
     if (UpdateClient.IsOnline())
     {
         // Check for the latest released version on a background thread.
         var worker = new BackgroundWorker();
         worker.DoWork += (sender, e) =>
         {
             e.Result = UpdateClient.GetLatestReleasedVersion(this.Logger);
         };
         worker.RunWorkerCompleted += (sender, e) =>
         {
             if (e.Error != null)
             {
                 this.Logger.Log("An unexpected exception occurred while checking for updates", e.Error);
             }
             else
             {
                 var latestVersion = (ApplicationVersion)e.Result;
                 if (latestVersion != null && latestVersion.VersionNumber > App.ApplicationVersion)
                 {
                     // If the latest released version is newer than the current, return the version and URL.
                     this.NewVersionMessage    = string.Format(CultureInfo.CurrentCulture, "A new version is available: v{0}!", latestVersion.VersionNumber.ToString());
                     this.NewVersionUrl        = latestVersion.DownloadUrl.ToString();
                     this.NewVersionVisibility = Visibility.Visible;
                 }
             }
         };
         worker.RunWorkerAsync();
     }
 }