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;
            }
        }
Beispiel #2
0
        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;
                }
            }
        }