public void mibbrowser_OnMibNode(object sender, nsoftware.IPWorksSNMP.MibbrowserMibNodeEventArgs e) { string[] subids = e.NodeOid.Split(".".ToCharArray()); string oid = ""; TreeNodeCollection treeNodeCollection = tvwMibNodes.Nodes; foreach (string subid in subids) { MyTreeNode matchingTreeNode = null; foreach (MyTreeNode treeNode in treeNodeCollection) { if (treeNode.subid == subid) { matchingTreeNode = treeNode; break; } } oid += "." + subid; if (matchingTreeNode == null) { MibTreeInformation tree = new MibTreeInformation(); tree.Name = e.NodeLabel; tree.OID = e.NodeOid; tree.Mib = e.NodeModuleName; tree.Syntax = e.NodeSyntaxString; tree.Description = e.NodeDescription; tree.Access = e.NodeAccess.ToString(); tree.Status = e.NodeTypeString; tree.Indexes = e.NodeIndex; tree.MibID = id; tree.DefVal = ""; tree.DeviceID = DeviceID; tree.ParentName = e.NodeParentName; TreeMibList.Add(tree); TreeStructure childparent = new TreeStructure(); var parrent = TreeMibList.Where(m => m.Name == e.NodeParentName).FirstOrDefault(); if (parrent == null) { TreeMibList[TreeMibList.Count - 1].ParrentID = 0; } else { TreeMibList[TreeMibList.Count - 1].ParrentID = parrent.MibID; } id++; matchingTreeNode = new MyTreeNode(oid, e.NodeLabel, subid, e.NodeTypeString); treeNodeCollection.Add(matchingTreeNode); } treeNodeCollection = matchingTreeNode.ChildNodes; } }
public BuildMIBTree(string MibName, int DeviceID) { TreeNode t1, troot; TreeNode tr; string strParent; char[] strTrim1 = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; char[] strTrim2 = { '.' }; //objSnmpMIB.AddMibFile(@"C:\Users\tyupi\Desktop\MIB\Tredess\SELENIO\SEL-ENC1-MIB-7.1-01.mib"); //objSnmpMIB.LoadMibFile(@"C:\Users\tyupi\Desktop\MIB\Tredess\SELENIO\SEL-ENC1-MIB-7.1-01.mib"); objSnmpMIB.AddMibFile(@"C:\Users\tyupi\Documents\visual studio 2017\Projects\AdminPanelDevice\AdminPanelDevice\" + MibName); objSnmpMIB.LoadMibFile(@"C:\Users\tyupi\Documents\visual studio 2017\Projects\AdminPanelDevice\AdminPanelDevice\" + MibName); objSnmp = (SnmpObject)objSnmpMIB.Get("iso.org.dod.internet.private.enterprises"); tr = new TreeNode(""); treeView.Nodes.Add(tr); DeviceMibID = db.MibTreeInformations.Select(s => s.DeviceID).ToList().LastOrDefault(); while (objSnmpMIB.LastError == 0) { t1 = new TreeNode(objSnmp.OIDNameShort); t1.Target = objSnmp.OID; strParent = objSnmp.OID.TrimEnd(strTrim1).TrimEnd(strTrim2); MibTreeInformation mibstr = new MibTreeInformation(); if (objSnmp.Access == objConstants.nwMIB_ACCESS_NOACCESS) { access = "NOACCESS"; } else if (objSnmp.Access == objConstants.nwMIB_ACCESS_NOTIFY) { access = "NOTIFY"; } else if (objSnmp.Access == objConstants.nwMIB_ACCESS_READONLY) { access = "READONLY"; } else if (objSnmp.Access == objConstants.nwMIB_ACCESS_WRITEONLY) { access = "WRITEONLY"; } else if (objSnmp.Access == objConstants.nwMIB_ACCESS_READWRITE) { access = "READWRITE"; } else if (objSnmp.Access == objConstants.nwMIB_ACCESS_READCREATE) { access = "READCREATE"; } else { access = "n/a"; } if (objSnmp.Status == objConstants.nwMIB_STATUS_CURRENT) { status = "CURRENT"; } else if (objSnmp.Status == objConstants.nwMIB_STATUS_DEPRECATED) { status = "DEPRECATED"; } else if (objSnmp.Status == objConstants.nwMIB_STATUS_OBSOLETE) { status = "OBSOLETE"; } else if (objSnmp.Status == objConstants.nwMIB_STATUS_MANDATORY) { status = "MANDATORY"; } else { status = "n/a"; } DeviceMibID++; mibstr.Name = objSnmp.OIDNameShort; //mibstr.ID = ID; mibstr.MibID = DeviceMibID; mibstr.OID = objSnmp.OID; mibstr.Mib = "RFC1213MIB"; mibstr.Syntax = objSnmp.Syntax; mibstr.Access = access; mibstr.Status = status; mibstr.DefVal = ""; mibstr.Indexes = ""; mibstr.Description = objSnmp.Description; mibstr.DeviceID = DeviceID; MibSave.Add(mibstr); db.MibTreeInformations.Add(mibstr); //troot =FindNodeByValue(treeView1.Nodes, strParent); //t1.ForeColor = objSnmp.IsUserMib ? Color.DarkBlue : Color.Black; //ID++; if ((troot = FindNodeByValue(treeView.Nodes, strParent)) != null) { troot.ChildNodes.Add(t1); } else { treeView.Nodes.Add(t1); //OidDescription.Add(t1); } objSnmp = (SnmpObject)objSnmpMIB.GetNext(); } treeView.ExpandAll(); SearchTreeView(MibSave[MibSave.Count - 1].OID, treeView.Nodes, DeviceID); treeView.ExpandAll(); db.SaveChanges(); }
/// <summary> private TreeNode SearchTreeView(string p_sSearchTerm, TreeNodeCollection p_Nodes, int DeviceID) { int ss = 0; MibTreeInformation treeid = new MibTreeInformation(); son SonParent = new son(); foreach (TreeNode node in p_Nodes) { if (node.Text == p_sSearchTerm || (string)node.Target == p_sSearchTerm) { Expand = 1; SonParent.name = node.Text; SonParent.numb = IDid - 1; Par.Add(SonParent); //TreeStructure parent = new TreeStructure(); //parent.ID = 1; //parent.Child = 1; //parent.Parrent = 1; //parent.OIDName = MibSave[0].Name; //ParentChild.Add(parent); DeviceTreeID = db.TreeStructure.Select(s => s.DeviceID).ToList().LastOrDefault(); for (int j = 0; j < MibSave.Count; j++) { TreeStructure parent = new TreeStructure(); if (j == 0) { //parent.ID = 1; parent.Child = 1; parent.Parrent = 1; DeviceTreeID++; parent.TreeID = DeviceTreeID; parent.DeviceID = DeviceID; parent.OIDName = MibSave[0].Name; ParentChild.Add(parent); } else { var response = Par.Where(r => r.name == MibSave[j].Name).FirstOrDefault(); //parent.ID = j + 1; parent.Child = j + 1; parent.OIDName = response.name; parent.Parrent = response.numb; DeviceTreeID++; parent.TreeID = DeviceTreeID; parent.DeviceID = DeviceID; ParentChild.Add(parent); } db.TreeStructure.Add(parent); //db.SaveChanges(); // shenaxva bazasHi } return(node); } if (node.ChildNodes.Count > 0) { ss++; var expandTree = node; if (ID >= 1) { for (int i = 0; i < node.ChildNodes.Count; i++) { var nodeID = node.ChildNodes[i].Parent; if (nodeID != null) { treeid = MibSave.Where(t => t.Name == nodeID.Text).FirstOrDefault(); SonParent.name = node.ChildNodes[i].Text; SonParent.numb = treeid.ID; Par.Add(SonParent); } } } IDid++; TreeNode child = SearchTreeView(p_sSearchTerm, node.ChildNodes, DeviceID); if (child != null) { return(child); } } else { if (IDid == 0) { IDid = 1; } } } return(null); }