private void backgroundWorkerLoad_DoWork(object sender, DoWorkEventArgs e) { try { // Do not access the form's BackgroundWorker reference directly. // Instead, use the reference provided by the sender parameter. BackgroundWorker worker = sender as BackgroundWorker; if (worker.CancellationPending == false) { TagArguments arg = e.Argument as TagArguments; if (arg.Type == JobType.CreateTag) { e.Result = myIfsSvn.CreateTag(arg.SelectedTrunk, arg.TagName); } } // If the operation was canceled by the user, // set the DoWorkEventArgs.Cancel property to true. if (worker.CancellationPending) { e.Cancel = true; } } catch (Exception) { //throw the exception so that RunWorkerCompleted can catch it. throw; } }
private void backgroundWorkerLoad_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (this.Dispatcher.CheckAccess() == false) { this.Dispatcher.Invoke(new backgroundWorkerLoad_RunWorkerCompletedDelegate(backgroundWorkerLoad_RunWorkerCompleted), new object[] { sender, e }); } else { try { if (e.Error != null) { ModernDialog.ShowMessage(e.Error.Message, "Error setting Log", MessageBoxButton.OK); } else if (e.Cancelled) { // textBoxLog.AppendText("Cancelled!\r\n"); } else { if (e.Result != null) { TagArguments arg = e.Result as TagArguments; if (arg.Type == JobType.LoadComponents) { List <SvnComponent> componentList = new List <SvnComponent>(); foreach (SvnListEventArgs folder in arg.FolderList) { if (string.IsNullOrWhiteSpace(folder.Path) == false) { componentList.Add(new SvnComponent(folder)); } } StackPanel treeItemStack; TextBlock lbl; Image treeItemImage; ListBoxItem nodeItem; List <ListBoxItem> nodeItemList = new List <ListBoxItem>(); foreach (SvnComponent component in componentList) { nodeItem = new ListBoxItem(); nodeItem.Name = component.Name.Replace("-", "_").Replace(".", "_"); treeItemStack = new StackPanel(); treeItemStack.Orientation = Orientation.Horizontal; lbl = new TextBlock(); lbl.Text = component.Name; lbl.Margin = new Thickness(3, 1, 3, 1); treeItemImage = new Image(); treeItemImage.Source = rootBi; treeItemImage.Margin = new Thickness(3, 1, 3, 1); treeItemStack.Children.Add(treeItemImage); treeItemStack.Children.Add(lbl); nodeItem.Content = treeItemStack; nodeItem.Tag = component; nodeItemList.Add(nodeItem); } if (nodeItemList.Count > 0) { listBoxComponentList.ItemsSource = nodeItemList; } textBoxComponentFilter.Text = Properties.Settings.Default.ManageTagBranch_TextBoxComponentFilter_text; } else if (arg.Type == JobType.LoadChildFolders) { arg.FolderList.RemoveAt(0); StackPanel treeItemStack; TextBlock lbl; Image treeItemImage; TreeViewItem nodeItem; List <TreeViewItem> nodeItemList = new List <TreeViewItem>(); foreach (SvnListEventArgs childForlder in arg.FolderList) { nodeItem = new TreeViewItem(); treeItemStack = new StackPanel(); treeItemStack.Orientation = Orientation.Horizontal; treeItemImage = new Image(); treeItemImage.Source = bi; treeItemStack.Children.Add(treeItemImage); lbl = new TextBlock(); lbl.Text = childForlder.Name; treeItemStack.Children.Add(lbl); nodeItem.Header = treeItemStack; nodeItem.Tag = childForlder; nodeItem.Expanded += new RoutedEventHandler(nodeItem_Expanded); nodeItemList.Add(nodeItem); } arg.SelectedFolderView.ItemsSource = nodeItemList; } } } } catch (Exception ex) { ModernDialog.ShowMessage(ex.Message, "Error", MessageBoxButton.OK); } finally { //buttonFind.Content = "Find"; progressBarMain.Visibility = System.Windows.Visibility.Collapsed; } } }