示例#1
0
 private void ImportSolution()
 {
     SetDialog($"Importing {Path} async...");
     ThreadManager.Instance.ScheduleTask(() =>
     {
         var isError          = false;
         var errorMessage     = string.Empty;
         var clonedSolutionId = Guid.Empty;
         try
         {
             if (ImportAsync)
             {
                 CurrentSolutionManager
                 .ImportSolutionAsnyc(Path, OverwriteUnmanagedCustomizations, MigrateAsHold, PublishWorkflows);
             }
             else
             {
                 CurrentSolutionManager
                 .ImportSolution(Path, OverwriteUnmanagedCustomizations, MigrateAsHold, PublishWorkflows);
             }
         }
         catch (Exception ex)
         {
             isError      = true;
             errorMessage = ex.Message;
         }
         System.Windows.Application.Current.Dispatcher.Invoke(() =>
         {
             if (isError)
             {
                 MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                 var dependencies = GetRequiredDependencies(errorMessage);
                 if (dependencies != null && !string.IsNullOrEmpty(dependencies.Trim()))
                 {
                     System.Windows.Clipboard.SetText(dependencies);
                     var newMessage = $"(Copied to clipboard)\r\n{dependencies}";
                     MessageBox.Show(newMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                 }
             }
             else
             {
                 _window.Close();
             }
             UnsetDialog();
         });
     }, string.Empty, _importTaskId);
 }