Exemplo n.º 1
0
 private void ConfigFwUpdateTask()
 {
     _flashTask = new Task(delegate
     {
         _isDuringFwUpdate = true;
         try
         {
             CurrentController.UpdateFirmwareFromFile(FileName);
             FlashingResult = FwUpdateAPI.Resources.FWUpdateSuccessMessage;
         }
         catch (TbtException ex)
         {
             FlashingResult = new TbtException(ex.ErrorCode, FwUpdateAPI.Resources.FWUpdateFailedMessage).Message;
         }
         catch (Exception ex2)
         {
             string text2 = new TbtException(TbtStatus.SDK_GENERAL_ERROR_CODE, ex2.Message).Message;
             if (!ex2.Message.Any())
             {
                 text2 = text2 + "\n" + ex2.HResult;
             }
             FlashingResult = text2;
         }
     });
     _flashTask.ContinueWith(delegate
     {
         base.Dispatcher.Invoke(delegate
         {
             NextButton_Click(this, new RoutedEventArgs());
             UpdateCompletedScreen updateCompletedScreen = PageContent.Content as UpdateCompletedScreen;
             if (updateCompletedScreen != null)
             {
                 updateCompletedScreen.ResultMessage.Text = FlashingResult;
             }
             _isDuringFwUpdate = false;
             string text       = FlashingResult.Substring(9, 3);
             if (FlashingResult == "Firmware was updated successfully.")
             {
                 if (Restart != "1")
                 {
                     tbt_reset();
                     Thread.Sleep(3000);
                     tbtoff();
                     ProcessStartInfo startInfo = new ProcessStartInfo("shutdown.exe")
                     {
                         Arguments = "/r /f /t 8"
                     };
                     Environment.GetCommandLineArgs();
                     Process.Start(startInfo);
                     Console.WriteLine("Wait few seconds to force Thunderbolt device to be power off ... ");
                     Environment.Exit(0);
                 }
                 else if (Restart == "1")
                 {
                     tbt_reset();
                     Thread.Sleep(3000);
                     tbtoff();
                     Console.WriteLine("Wait few seconds to force Thunderbolt device to be power off... ");
                     Environment.Exit(0);
                 }
             }
             else if (FlashingResult != "Firmware was updated successfully.")
             {
                 tbtoff();
                 Environment.Exit(1);
                 if (int.Parse(text.Substring(1, 1)) == 9)
                 {
                     string s = text.Substring(9, 2);
                     Environment.GetCommandLineArgs();
                     Environment.ExitCode = int.Parse(s);
                     tbtoff();
                     Close();
                 }
                 else
                 {
                     Environment.GetCommandLineArgs();
                     Environment.ExitCode = int.Parse(text);
                     tbtoff();
                     Close();
                 }
             }
         });
     });
 }