private int GetChildCount(string objType, int?categoryId) { int count = 0; var sql = string.Empty; if (objType != "group") { if (objType == "table") { sql = "select * from sysobjects where xtype='u' ORDER BY name"; } else if (objType == "proc") { sql = "select * from sysobjects where xtype='p' ORDER BY name"; } else if (objType == "view") { sql = "select * from sysobjects where xtype='v' ORDER BY name"; } else if (objType == "function") { sql = "select * from sysobjects where xtype='fn' ORDER BY name"; } ////Framework.Components.DataAccess.StartUp.EntryPoint(path, timeout, ConnectionString); var oDT = new Framework.Components.DataAccess.DBDataTable("Get List", sql, DataStoreKey); if (oDT.DBTable != null) { count = oDT.DBTable.Rows.Count; } if (count > 0) { return(count); } } if (categoryId != null) { // Get Child Category Count var data = new Category.Data(); data.ParentCategoryId = categoryId; var dtCategory = Category.Search(data); if (dtCategory != null && dtCategory.Rows.Count > 0) { count = dtCategory.Rows.Count; return(count); } // Get Child Object Items Count var dataItem = new CategoryItem.Data(); dataItem.CategoryId = categoryId; var dtCategoryItem = CategoryItem.Search(dataItem); if (dtCategoryItem != null && dtCategoryItem.Rows.Count > 0) { count = dtCategoryItem.Rows.Count; } } return(count); }
private void RemoveChildNodes(UltraTreeNode parentNode) { while (parentNode.Nodes.Count > 0) { var nodeTag = Convert.ToString(parentNode.Nodes[0].Tag); if (nodeTag == "group") { if (parentNode.Nodes[0].Nodes.Count > 0) { RemoveChildNodes(parentNode.Nodes[0]); } var data = new Category.Data(); data.CategoryId = Convert.ToInt32(GetKey(parentNode.Nodes[0].Key)); Category.Delete(data); parentNode.Nodes[0].Remove(); } else { var data = new CategoryItem.Data(); data.CategoryItemId = Convert.ToInt32(GetKey(parentNode.Nodes[0].Key)); CategoryItem.Delete(data); //nodeTag //parentNode.Nodes[i].Reposition( for (int j = 0; j < treeViewObjects.Nodes[0].Nodes.Count; j++) { var parentTag = Convert.ToString(treeViewObjects.Nodes[0].Nodes[j].Tag); if (parentTag == nodeTag + "s") { parentNode.Nodes[0].Reposition(treeViewObjects.Nodes[0].Nodes[j].Nodes); break; } } } } }
private void treeViewObjects_DragDrop(object sender, DragEventArgs e) { //A dummy node variable used for various things UltraTreeNode aNode; //The SelectedNodes which will be dropped SelectedNodesCollection SelectedNodes; //The Node to Drop On UltraTreeNode DropNode; //An integer used for loops int i; //Set the DropNode DropNode = UltraTree_DropHightLight_DrawFilter.DropHightLightNode; //Get the Data and put it into a SelectedNodes collection, //then clone it and work with the clone //These are the nodes that are being dragged and dropped SelectedNodes = (SelectedNodesCollection)e.Data.GetData(typeof(SelectedNodesCollection)); SelectedNodes = SelectedNodes.Clone() as SelectedNodesCollection; //Sort the selected nodes into their visible position. //This is done so that they stay in the same order when //they are repositioned. SelectedNodes.SortByPosition(); //Determine where we are dropping based on the current //DropLinePosition of the DrawFilter switch (UltraTree_DropHightLight_DrawFilter.DropLinePosition) { case DropLinePositionEnum.OnNode: //Drop ON the node { //Loop through the SelectedNodes and reposition //them to the node that was dropped on. //Note that the DrawFilter keeps track of what //node the mouse is over, so we can just use //DropHighLightNode as the drop target. for (i = 0; i <= (SelectedNodes.Count - 1); i++) { try { aNode = SelectedNodes[i]; var newParentTagName = Convert.ToString(DropNode.Tag); var oldParentTagName = Convert.ToString(aNode.Parent.Tag); var oldParentCategoryId = Convert.ToInt32(GetKey(aNode.Parent.Key)); var newParentCategoryId = Convert.ToInt32(GetKey(DropNode.Key)); var nodeTagName = Convert.ToString(aNode.Tag); if (string.IsNullOrEmpty(newParentTagName) || string.IsNullOrEmpty(oldParentTagName)) { continue; } if (nodeTagName == "group") { var data = new Category.Data(); data.CategoryId = Convert.ToInt32(GetKey(aNode.Key)); data.ParentCategoryId = newParentCategoryId; data.Name = aNode.Text.Split(new char[] { '(' })[0]; data.ConnectionId = ConnectionId; Category.Update(data); } else { if (newParentTagName == "root") { continue; } List <string> lstRootTags = new List <string>() { "tables", "procs", "views", "functions" }; var isUpdate = false; var isInsert = false; var isDelete = false; if (newParentTagName == "group" && oldParentTagName == "group") { isUpdate = true; } else if (newParentTagName == "group" && lstRootTags.Contains(oldParentTagName)) { if (nodeTagName + "s" != oldParentTagName) { isUpdate = true; } else { isInsert = true; } } else if (oldParentTagName == "group" && lstRootTags.Contains(newParentTagName)) { if (nodeTagName + "s" != newParentTagName) { isUpdate = true; } else { isDelete = true; } } else if (lstRootTags.Contains(newParentTagName) && lstRootTags.Contains(oldParentTagName)) { if (nodeTagName + "s" != newParentTagName && nodeTagName + "s" != oldParentTagName) { isUpdate = true; } else if (nodeTagName + "s" == oldParentTagName && nodeTagName + "s" != newParentTagName) { isInsert = true; } else if (nodeTagName + "s" == newParentTagName && nodeTagName + "s" != oldParentTagName) { isDelete = true; } } var data = new CategoryItem.Data(); data.CategoryId = newParentCategoryId; data.ItemType = nodeTagName; data.Name = aNode.Text.Split(new char[] { '(' })[0]; data.Status = "new"; if (isInsert) { data.CreatedDate = DateTime.Now; var categoryItemId = CategoryItem.Create(data, ApplicationConnectionString); aNode.Key = Convert.ToString(categoryItemId) + "$$" + aNode.Tag; } else if (isUpdate) { data.CategoryItemId = Convert.ToInt32(GetKey(aNode.Key)); CategoryItem.Update(data); } else if (isDelete) { data.CategoryItemId = Convert.ToInt32(GetKey(aNode.Key)); CategoryItem.Delete(data); } } //MessageBox.Show("aNode: " + aNode.Text); //MessageBox.Show("Drop Node: " + DropNode.Text); aNode.Reposition(DropNode.Nodes); } catch { } } break; } } //After the drop is complete, erase the current drop //highlight. UltraTree_DropHightLight_DrawFilter.ClearDropHighlight(); }
private void CreatChildNodes(UltraTreeNode tNode) { try { var sql = string.Empty; var nodeTag = string.Empty; var isRootNode = false; var imgIndex = 0; if (tNode.Tag == "tables") { //sql = "select name, (SELECT SUM (row_count) FROM sys.dm_db_partition_stats WHERE object_id=s.id) as 'rowcount' from sysobjects s WHERE xtype='u' ORDER BY name"; sql = "SELECT so.name, [RowCount] = MAX(si.rows) FROM sysobjects so, sysindexes si WHERE so.xtype = 'U' AND si.id = OBJECT_ID(so.name) GROUP BY so.name ORDER BY 1"; nodeTag = "table"; isRootNode = true; imgIndex = 2; } else if (tNode.Tag == "procs") { sql = "select name from sysobjects where xtype='p' ORDER BY name"; nodeTag = "proc"; isRootNode = true; imgIndex = 3; } else if (tNode.Tag == "views") { sql = "select name from sysobjects where xtype='v' ORDER BY name"; nodeTag = "view"; isRootNode = true; imgIndex = 4; } else if (tNode.Tag == "functions") { sql = "select name from sysobjects where xtype='fn' ORDER BY name"; nodeTag = "function"; isRootNode = true; imgIndex = 5; } var isCleared = false; var initCount = tNode.Nodes.Count; if (isRootNode && tNode.Nodes.Count == 1) { tNode.Nodes.Clear(); isCleared = true; Framework.Components.DataAccess.StartUp.EntryPoint(path, timeout, Database); var oDT = new Framework.Components.DataAccess.DBDataTable("Get List", sql, Database); if (oDT.DBTable != null && oDT.DBTable.Rows.Count > 0) { var categoryItemList = CategoryItem.GetList(); foreach (DataRow dr in oDT.DBTable.Rows) { bool isExist = false; if (categoryItemList != null && categoryItemList.Rows.Count > 0) { var rows = categoryItemList.Select(" Name = '" + Convert.ToString(dr["name"]) + "'"); if (rows.Length > 0) { isExist = true; } } if (!tNode.Nodes.Exists(Convert.ToString(dr["name"])) && !isExist) { var nodeName = Convert.ToString(dr["name"]); if (tNode.Tag == "tables") { nodeName += "(" + Convert.ToString(dr["rowcount"]) + ")"; } var tmpNode = tNode.Nodes.Add(Convert.ToString(dr["name"]), nodeName); tmpNode.Tag = nodeTag; tmpNode.AllowCellEdit = AllowCellEdit.Disabled; tmpNode.Override.NodeAppearance.Image = GetImageIndex(nodeTag); } } } } // For Group also and for Root Nodes Also. if (initCount == 1) { if (!isCleared) { tNode.Nodes.Clear(); } // Get Child Category var data = new Category.Data(); if (tNode.Tag.ToString() == "group") { var tmpId = GetKey(tNode.Key); data.ParentCategoryId = Convert.ToInt32(tmpId); } else { data.ParentCategoryId = Convert.ToInt32(tNode.Key); } var dtCategory = Category.Search(data); if (dtCategory != null && dtCategory.Rows.Count > 0) { foreach (DataRow dr in dtCategory.Rows) { if (!tNode.Nodes.Exists(Convert.ToString(dr["name"]))) { var tmpNode = tNode.Nodes.Add(Convert.ToString(dr["CategoryId"]) + "$$group", Convert.ToString(dr["Name"])); tmpNode.Tag = "group"; tmpNode.Override.NodeAppearance.Image = GetImageIndex(tmpNode.Tag.ToString()); int childCount = GetChildCount("group", Convert.ToInt32(dr["CategoryId"])); if (childCount > 0) { tmpNode.Nodes.Add("Sample Group" + tmpNode.Key, "Sample Group"); } } } } // Get Child Object Items var dataItem = new CategoryItem.Data(); if (tNode.Tag.ToString() == "group") { var tmpId = GetKey(tNode.Key); dataItem.CategoryId = Convert.ToInt32(tmpId); } else { dataItem.CategoryId = Convert.ToInt32(tNode.Key); } var dtCategoryItem = CategoryItem.Search(dataItem); if (dtCategoryItem != null && dtCategoryItem.Rows.Count > 0) { foreach (DataRow dr in dtCategoryItem.Rows) { var tag = Convert.ToString(dr["ItemType"]).ToLower(); var name = Convert.ToString(dr["Name"]); if (tag == "table") { name = name + "(" + GetTableRowCount(name) + ")"; } var tmpNode = tNode.Nodes.Add(Convert.ToString(dr["CategoryItemId"]) + "$$" + tag, name); tmpNode.Tag = tag; tmpNode.Override.NodeAppearance.Image = GetImageIndex(Convert.ToString(dr["ItemType"]).ToLower()); } } } //toolStripStatusLabelExecute.Text = "Objects Listed Successfully"; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private int GetChildCount(string objType, int?categoryId) { int count = 0; var sql = string.Empty; if (objType != "group") { if (objType == "table") { sql = "select * from sysobjects where xtype='u' ORDER BY name"; } else if (objType == "proc") { sql = "select * from sysobjects where xtype='p' ORDER BY name"; } else if (objType == "view") { sql = "select * from sysobjects where xtype='v' ORDER BY name"; } else if (objType == "function") { sql = "select * from sysobjects where xtype='fn' ORDER BY name"; } var localConnectionString = ConfigurationManager.ConnectionStrings[Database]; if (localConnectionString == null) { AddNewConnectionString(Server, Database, User, Password); } var oDT = new Framework.Components.DataAccess.DBDataTable("Get List", sql, Database); if (oDT.DBTable != null) { count = oDT.DBTable.Rows.Count; } if (count > 0) { return(count); } } if (categoryId != null) { // Get Child Category Count var data = new Category.Data(); data.ParentCategoryId = categoryId; var dtCategory = Category.Search(data); if (dtCategory != null && dtCategory.Rows.Count > 0) { count = dtCategory.Rows.Count; return(count); } // Get Child Object Items Count var dataItem = new CategoryItem.Data(); dataItem.CategoryId = categoryId; var dtCategoryItem = CategoryItem.Search(dataItem); if (dtCategoryItem != null && dtCategoryItem.Rows.Count > 0) { count = dtCategoryItem.Rows.Count; } } return(count); }