Beispiel #1
0
        protected override void DoWork(TreeNode treeNode)
        {
            IContentProvider contentProvider = treeNode as IContentProvider;

            if (null == contentProvider)
            {
                return;
            }

            views.NodeWapper folder = contentProvider.Content as views.NodeWapper;
            if (null == folder)
            {
                return;
            }

            try
            {
                using (IDbSession session = _sessionFactory.NewSession())
                    using (TransactionScope transactionScope = new TransactionScope(session))
                    {
                        session.Delete("DeleteContact", folder.Id);
                        transactionScope.VoteCommit();
                    }

                treeNode.Remove();
            }
            catch (Exception exception)
            {
                Utils.ShowMsgBox(exception);
            }
        }
Beispiel #2
0
 void Insert(List <views.NodeWapper> folders, TreeNode treeNode, int ordering)
 {
     views.NodeWapper folder = GetData <views.NodeWapper>(treeNode);
     if (null == folder)
     {
         return;
     }
     folder.Ordering = ordering;
     folders.Add(folder);
 }
        protected override void DoWork(TreeNode treeNode)
        {
            views.NodeWapper folder = GetData <views.NodeWapper>(treeNode);
            if (null == folder)
            {
                return;
            }

            Form dlg = CreateForm();

reTry:
            if (DialogResult.OK != dlg.ShowDialog())
            {
                return;
            }

            views.NodeWapper newFolder = new views.NodeWapper(GetResult(dlg));
            newFolder.Parent = folder.Id;
            try
            {
                using (IDbSession session = _sessionFactory.NewSession())
                    using (TransactionScope transactionScope = new TransactionScope(session))
                    {
                        session.Insert(_statement, newFolder.GetInstance());
                        transactionScope.VoteCommit();
                    }

                views.TreePage mailPage = treeNode.TreeView as views.TreePage;
                if (null != mailPage)
                {
                    mailPage.InsertNode(treeNode.Nodes, mailPage.CreateNode(newFolder));
                }
                return;
            }
            catch (Exception exception)
            {
                Utils.ShowMsgBox(exception);
            }
            goto reTry;
        }
Beispiel #4
0
        protected override void DoWork(TreeNode treeNode)
        {
            if (null == (IsUp?treeNode.PrevNode : treeNode.NextNode))
            {
                return;
            }

            views.NodeWapper folder = base.GetData <views.NodeWapper>(treeNode);
            if (null == folder)
            {
                return;
            }

            TreeView treeView = treeNode.TreeView;

            treeView.BeginUpdate();

            try
            {
                TreeNode old = null;

                using (IDbSession session = _sessionFactory.NewSession())
                    using (TransactionScope transactionScope = new TransactionScope(session))
                    {
                        List <views.NodeWapper> folders = new List <views.NodeWapper>();
                        TreeNode node = treeNode;
                        while (null != node.PrevNode)
                        {
                            node = node.PrevNode;
                        }

                        int seed = 0;
                        for (TreeNode n = node; null != n; n = n.NextNode)
                        {
                            if (n == treeNode)
                            {
                                continue;
                            }

                            if (IsUp)
                            {
                                if (treeNode == n.NextNode)
                                {
                                    old = n;
                                    Insert(folders, treeNode, seed++);
                                }

                                Insert(folders, n, seed++);
                            }
                            else
                            {
                                Insert(folders, n, seed++);
                                if (treeNode == n.PrevNode)
                                {
                                    old = n;
                                    Insert(folders, treeNode, seed++);
                                }
                            }
                        }

                        foreach (views.NodeWapper instance in folders)
                        {
                            session.Update(GetStatement(), instance.GetInstance());
                        }

                        transactionScope.VoteCommit();
                    }

                if (null == old)
                {
                    return;
                }

                int index = old.Index; //(old.PrevNode == treeNode)? old.Index;
                treeNode.Remove();
                if (null == old.Parent)
                {
                    old.TreeView.Nodes.Insert(index, treeNode);
                }
                else
                {
                    old.Parent.Nodes.Insert(index, treeNode);
                }
            }
            catch (Exception exception)
            {
                Utils.ShowMsgBox(exception);
            }
            finally
            {
                treeView.EndUpdate();
            }
        }
Beispiel #5
0
        protected override void DoWork(TreeNode treeNode)
        {
            views.NodeWapper folder = GetData <views.NodeWapper>(treeNode);
            if (null == folder)
            {
                return;
            }

            Form dlg = CreateForm(folder.Id);

reTry:
            if (DialogResult.OK != dlg.ShowDialog())
            {
                return;
            }

            object newFolder = GetResult(dlg);

            try
            {
                using (IDbSession session = _sessionFactory.NewSession())
                    using (TransactionScope transactionScope = new TransactionScope(session))
                    {
                        session.Update(_statement, newFolder);
                        transactionScope.VoteCommit();
                    }
            }
            catch (Exception exception)
            {
                Utils.ShowMsgBox(exception);
                goto reTry;
            }

            views.TreePage mailPage = treeNode.TreeView as views.TreePage;
            if (null != mailPage)
            {
                mailPage.BeginUpdate();
                try
                {
                    views.TreePage.ContentNode newFolderNode = mailPage.CreateNode(new views.NodeWapper(newFolder));
                    mailPage.InsertNode((null == treeNode.Parent) ? mailPage.Nodes : treeNode.Parent.Nodes
                                        , newFolderNode);
                    TreeNode[] treeNodes = new TreeNode[treeNode.Nodes.Count];
                    treeNode.Nodes.CopyTo(treeNodes, 0);

                    treeNode.Remove();
                    foreach (TreeNode n in treeNodes)
                    {
                        newFolderNode.Nodes.Add(n);
                    }

                    mailPage.SelectedNode = newFolderNode;
                }
                catch (Exception exception)
                {
                    Utils.ShowMsgBox(exception);
                }
                finally
                {
                    mailPage.EndUpdate();
                }
            }
        }