private void LoadFromXML(string cons = "") { try { Runtime.IsConnectionsFileLoaded = false; // SECTION 1. Create a DOM Document and load the XML data into it. this.xDom = new XmlDocument(); if (cons != "") { xDom.LoadXml(cons); } else { xDom.Load(this._ConnectionFileName); } if (xDom.DocumentElement.HasAttribute("ConfVersion")) { this.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes["ConfVersion"].Value.Replace(",", "."), CultureInfo.InvariantCulture); } else { Runtime.MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, Language.strOldConffile); } // SECTION 2. Initialize the treeview control. TreeNode rootNode; string rootNodeName = ""; if (xDom.DocumentElement.HasAttribute("Name")) { rootNodeName = (string)(xDom.DocumentElement.Attributes["Name"].Value.Trim()); } if (!string.IsNullOrEmpty(rootNodeName)) { rootNode = new TreeNode(rootNodeName); } else { rootNode = new TreeNode(xDom.DocumentElement.Name); } Root.Info rInfo = new Root.Info(Root.Info.RootType.Connection); rInfo.Name = rootNode.Text; rInfo.TreeNode = rootNode; rootNode.Tag = rInfo; if (this.confVersion > 1.3) //1.4 { if (Security.Crypt.Decrypt((string)(xDom.DocumentElement.Attributes["Protected"].Value), pW) != "ThisIsNotProtected") { if (Authenticate(xDom.DocumentElement.Attributes["Protected"].Value, false, rInfo) == false) { Settings.Default.LoadConsFromCustomLocation = false; Settings.Default.CustomConsPath = ""; //_RootTreeNode.Remove(); return; } } } bool imp = false; if (this.confVersion > 0.9) //1.0 { if (Convert.ToBoolean(xDom.DocumentElement.Attributes["Export"].Value) == true) { imp = true; } } if (this._Import == true && imp == false) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, Language.strCannotImportNormalSessionFile); return; } if (imp == false) { this._RootTreeNode.Text = rootNode.Text; this._RootTreeNode.Tag = rootNode.Tag; this._RootTreeNode.ImageIndex = System.Convert.ToInt32(Images.Enums.TreeImage.Root); this._RootTreeNode.SelectedImageIndex = System.Convert.ToInt32(Images.Enums.TreeImage.Root); } // SECTION 3. Populate the TreeView with the DOM nodes. AddNodeFromXml(xDom.DocumentElement, this._RootTreeNode); this._RootTreeNode.Expand(); //expand containers foreach (Container.Info contI in this._ContainerList) { if (contI.IsExpanded == true) { contI.TreeNode.Expand(); } } //open connections from last mremote session if (Settings.Default.OpenConsFromLastSession == true && Settings.Default.NoReconnect == false) { foreach (Connection.Info conI in this._ConnectionList) { if (conI.PleaseConnect == true) { Runtime.OpenConnection(conI); } } } this._RootTreeNode.EnsureVisible(); Runtime.IsConnectionsFileLoaded = true; Runtime.Windows.treeForm.InitialRefresh(); } catch (Exception ex) { Runtime.IsConnectionsFileLoaded = false; Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strLoadFromXmlFailed + Constants.vbNewLine + ex.Message + ex.StackTrace, true); throw; } }
private void LoadFromSQL() { try { Runtime.IsConnectionsFileLoaded = false; if (_SQLUsername != "") { sqlCon = new SqlConnection( (string) ("Data Source=" + _SQLHost + ";Initial Catalog=" + _SQLDatabaseName + ";User Id=" + _SQLUsername + ";Password="******"Data Source=" + _SQLHost + ";Initial Catalog=" + _SQLDatabaseName + ";Integrated Security=True"); } sqlCon.Open(); sqlQuery = new SqlCommand("SELECT * FROM tblRoot", sqlCon); sqlRd = sqlQuery.ExecuteReader(CommandBehavior.CloseConnection); sqlRd.Read(); if (sqlRd.HasRows == false) { Runtime.SaveConnections(); sqlQuery = new SqlCommand("SELECT * FROM tblRoot", sqlCon); sqlRd = sqlQuery.ExecuteReader(CommandBehavior.CloseConnection); sqlRd.Read(); } this.confVersion = Convert.ToDouble(sqlRd["confVersion"], CultureInfo.InvariantCulture); TreeNode rootNode; rootNode = new TreeNode((string)(sqlRd["Name"])); Root.Info rInfo = new Root.Info(Root.Info.RootType.Connection); rInfo.Name = rootNode.Text; rInfo.TreeNode = rootNode; rootNode.Tag = rInfo; rootNode.ImageIndex = System.Convert.ToInt32(Images.Enums.TreeImage.Root); rootNode.SelectedImageIndex = System.Convert.ToInt32(Images.Enums.TreeImage.Root); if (Security.Crypt.Decrypt((string)(sqlRd["Protected"]), pW) != "ThisIsNotProtected") { if (Authenticate((string)(sqlRd["Protected"]), false, rInfo) == false) { Settings.Default.LoadConsFromCustomLocation = false; Settings.Default.CustomConsPath = ""; rootNode.Remove(); return; } } //Me._RootTreeNode.Text = rootNode.Text //Me._RootTreeNode.Tag = rootNode.Tag //Me._RootTreeNode.ImageIndex = Images.Enums.TreeImage.Root //Me._RootTreeNode.SelectedImageIndex = Images.Enums.TreeImage.Root sqlRd.Close(); // SECTION 3. Populate the TreeView with the DOM nodes. AddNodesFromSQL(rootNode); //AddNodeFromXml(xDom.DocumentElement, Me._RootTreeNode) rootNode.Expand(); //expand containers foreach (Container.Info contI in this._ContainerList) { if (contI.IsExpanded == true) { contI.TreeNode.Expand(); } } //open connections from last mremote session if (Settings.Default.OpenConsFromLastSession == true && Settings.Default.NoReconnect == false) { foreach (Connection.Info conI in this._ConnectionList) { if (conI.PleaseConnect == true) { Runtime.OpenConnection(conI); } } } //Tree.Node.TreeView.Nodes.Clear() //Tree.Node.TreeView.Nodes.Add(rootNode) AddNodeToTree(rootNode); SetSelectedNode(selNode); Runtime.IsConnectionsFileLoaded = true; //Runtime.Windows.treeForm.InitialRefresh() sqlCon.Close(); } catch (Exception ex) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strLoadFromSqlFailed + Constants.vbNewLine + ex.Message, true); } }