Ejemplo n.º 1
0
            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;
                }
            }
Ejemplo n.º 2
0
            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);
                }
            }