Пример #1
0
        public static SessionFolderData GetAllSessionsFromPuTTYCM(string fileExport)
        {
            SessionFolderData root = new SessionFolderData("");

            if (fileExport == null || !File.Exists(fileExport))
            {
                return root;
            }

            XmlDocument doc = new XmlDocument();
            doc.Load(fileExport);

            XmlNodeList connections = doc.DocumentElement.SelectNodes("//connection[@type='PuTTY']");
            SessionFolderData currentFolderData = root;

            foreach (XmlElement connection in connections)
            {
                //List<string> folders = new List<string>();
                XmlElement node = connection.ParentNode as XmlElement;
                while (node != null && node.Name != "root")
                {
                    if (node.Name == "container" && node.GetAttribute("type") == "folder")
                    {
                        //folders.Add(node.GetAttribute("name"));
                        currentFolderData = currentFolderData.AddChildFolderData(node.GetAttribute("name"));
                    }
                    node = node.ParentNode as XmlElement;
                }
                //folders.Reverse();
                //string parentPath = string.Join("/", folders.ToArray());

                XmlElement info = (XmlElement)connection.SelectSingleNode("connection_info");
                XmlElement login = (XmlElement)connection.SelectSingleNode("login");

                SessionData session = new SessionData();
                session.SessionName = info.SelectSingleNode("name").InnerText;
                session.Host = info.SelectSingleNode("host").InnerText;
                session.Port = Convert.ToInt32(info.SelectSingleNode("port").InnerText);
                session.Proto = (ConnectionProtocol)Enum.Parse(typeof(ConnectionProtocol), info.SelectSingleNode("protocol").InnerText);
                session.PuttySession = info.SelectSingleNode("session").InnerText;
               /* session.SessionId = string.IsNullOrEmpty(parentPath)
                    ? session.SessionName
                    : SessionData.CombineSessionIds(parentPath, session.SessionName);*/
                session.Username = login.SelectSingleNode("login").InnerText;

                currentFolderData.AddSession(session);

            }

            return root;
        }
Пример #2
0
        private void CreateNodes(SessionFolderData folderData, TreeNode currentNode)
        {
            foreach (SessionFolderData child in folderData.SessionFolderDataChildren)
            {
                TreeNode childNode = AddFolderNode(currentNode, child);
                CreateNodes(child, childNode);
                CreateNodesSession(child.SessionDataChildren, childNode);

                if (child.IsExpand)
                {
                    childNode.Expand();
                }
                else
                {
                    childNode.Collapse();
                }
            }
        }
Пример #3
0
        private TreeNode AddFolderNode(TreeNode parentNode, SessionFolderData folderData)
        {
            TreeNode nodeNew = null;

                SuperPuTTY.ReportStatus("Adding new folder, {1}.  parent={0}", parentNode.Text, folderData.Name);
                nodeNew = parentNode.Nodes.Add(folderData.Name, folderData.Name, ImageKeyFolder, ImageKeyFolder);
                nodeNew.ContextMenuStrip = this.contextMenuStripFolder;
                nodeNew.Tag = folderData;

            return nodeNew;
        }
Пример #4
0
 public TreeNode getTreeNode(TreeNode treeNodeParent, SessionFolderData folderData)
 {
     foreach (TreeNode treeNode in treeNodeParent.Nodes)
     {
         if (IsFolderNode(treeNode))
         {
             SessionFolderData tagData = (SessionFolderData) treeNode.Tag;
             if (tagData == folderData)
             {
                 return treeNode;
             }
         }
         TreeNode childTreeNode = getTreeNode(treeNode, folderData);
         if (childTreeNode != null)
         {
             return childTreeNode;
         }
     }
     return null;
 }
Пример #5
0
 public static void RemoveFolder(SessionFolderData sFolderData)
 {
     GetRootFolderData().RemoveFolder(sFolderData);
 }
Пример #6
0
 public static void ImportSessions(SessionFolderData sessions, string folder)
 {
     /* foreach (FolderData session in sessions)
     {
         // pre-pend session id with the provided folder to put them
         //session.SessionId = MakeUniqueSessionId(SessionData.CombineSessionIds(folder, session.SessionId));
         //session.SessionName = SessionData.GetSessionNameFromId(session.SessionId);
         AddSession(session);
     }
     Log.InfoFormat("Imported {0} sessions into {1}", sessions.Count, folder);
     */
     //SaveSessions();
 }
Пример #7
0
 public static void AddSession(SessionData sessionData, SessionFolderData folderData)
 {
     folderData.AddSession(sessionData);
 }
Пример #8
0
        public void InsertFolder(SessionFolderData sessionFolderData)
        {
            string sql = "INSERT INTO folder (parent_id, position, is_expand, label) VALUES ";
            sql += "(@parent_id, @position, @is_expand, @label)";

            SQLiteCommand cmd = new SQLiteCommand(sql, _conn);
            cmd.Parameters.AddWithValue("@parent_id", -1);
            cmd.Parameters.AddWithValue("@position", -1);
            cmd.Parameters.AddWithValue("@is_expand", sessionFolderData.IsExpand);
            cmd.Parameters.AddWithValue("@label", sessionFolderData.Name);

            int result = cmd.ExecuteNonQuery();
            if (result == 1)
            {
                MessageBox.Show("session inserted");
            }
            else
            {
                MessageBox.Show("fail to insert session");
            }
            cmd.Dispose();
        }