private void OnDownloadAndInstall()

in JetBrains.Etw.HostService.Updater/src/Views/MainWindow.xaml.cs [84:113]


    private void OnDownloadAndInstall(object sender, RoutedEventArgs e)
    {
      myLogger.Info(Logger.Context);
      using (myViewModel.RunModalDialog())
      {
        var dlg = new DownloadingWindow(myLogger, myUpdateRequest, myDownloadDelay);
        if (dlg.ShowDialog() == true)
          try
          {
            myLogger.Info($"{Logger.Context} res=running");
            using var process = Process.Start(new ProcessStartInfo
              {
                UseShellExecute = true,
                FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "msiexec.exe"),
                Arguments = $"/i \"{dlg.MsiFile}\""
              });
            if (process == null)
              throw new Exception("Failed to run msiexec.exe");
            myLogger.Info($"{Logger.Context} res=exit_run");
            Application.Current.Shutdown();
          }
          catch (Exception ex)
          {
            myLogger.Exception(ex);
            MessageBox.Show(ex.GetBaseException().Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
          }
        else
          myLogger.Info($"{Logger.Context} res=cancel");
      }
    }