/// <summary> /// Expand the Children for a Hardware based field /// </summary> /// <param name="field"></param> /// <param name="returnDictionary"></param> protected void ExpandHardwareFieldChildren(string field) { AuditedItemsDAO lwDataAccess = new AuditedItemsDAO(); // Get the child CATEGORIES of this field (if any) DataTable categoryTable = lwDataAccess.GetAuditedItemCategories(field); // OK there were child CATEGORIES - recurse as we are only actually interested in VALUES beneath // the categories, not the categories themselves foreach (DataRow row in categoryTable.Rows) { string category = (string)row["_CATEGORY"]; ExpandHardwareFieldChildren(category); } // Now check for any NAMES within this category DataTable namesTable = lwDataAccess.GetAuditedItemCategoryNames(field); // Add any NAMES into the report foreach (DataRow row in namesTable.Rows) { string category = (string)row["_CATEGORY"]; string name = (string)row["_NAME"]; string icon = (string)row["_ICON"]; string fieldName = category + "|" + name; this.Add(new AuditDataReportColumn(AuditDataReportColumn.eFieldType.hardware , fieldName , GetLabelForField(fieldName))); } // If there were NO SUB-CATEGORIES and NO NAMES then simply add the field itself as it be a NAME // If we have no return data then just add the item itself to the dictionary if ((categoryTable.Rows.Count == 0) && (namesTable.Rows.Count == 0)) { this.Add(new AuditDataReportColumn(AuditDataReportColumn.eFieldType.hardware, field, GetLabelForField(field))); return; } }
//protected void PopulateSystemPatches(UltraTreeNode parentNode) //{ // AuditedItemsDAO lwDataAccess = new AuditedItemsDAO(); // DataTable categoryTable = lwDataAccess.GetAuditedItemCategories(parentNode.Key); // //UltraTreeNode[] categoryNodes = new UltraTreeNode[categoryTable.Rows.Count]; // // Iterate through the returned rows and add the text and icon to the tree // // All the returned items are categories // foreach (DataRow row in categoryTable.Rows) // { // string category = (string)row["_CATEGORY"]; // string icon = (string)row["_ICON"]; // UltraTreeNode categoryNode; // int index; // string nodeText = String.Empty; // // We display just the last portion of the category name as the node text // index = category.LastIndexOf("|"); // nodeText = category.Substring(index + 1); // // Add the category itself // categoryNode = new UltraTreeNode(category, nodeText); // categoryNode.Tag = parentNode.Tag; // categoryNode.LeftImages.Add(IconMapping.LoadIcon(icon, IconMapping.ICONSIZE.small)); // Trace.Write("Adding node " + category + " to tree node " + parentNode.Key + "\n"); // try // { // parentNode.Nodes.Add(categoryNode); // } // catch (Exception) // { // } // } //} /// <summary> /// Populate the Hardware node of the tree /// </summary> /// <param name="parentNode"></param> //protected void PopulateHardware(UltraTreeNode parentNode) //{ // AuditedItemsDAO lwDataAccess = new AuditedItemsDAO(); // DataTable categoryTable = lwDataAccess.GetAuditedItemCategories(parentNode.Key); // DataRow catRow; // UltraTreeNode categoryNode, nameNode; // int index; // string icon, nodeText, category, name, nameKey; // UltraTreeNode[] nodes = new UltraTreeNode[categoryTable.Rows.Count]; // parentNode.Nodes.Clear(); // // Iterate through the returned rows and add the text and icon to the tree // // All the returned items are categories // for (int i = 0; i < categoryTable.Rows.Count; i++) // { // catRow = categoryTable.Rows[i]; // category = (string)catRow["_CATEGORY"]; // //icon = (string)catRow["_ICON"]; // if (category.StartsWith("System|Patches|")) // { // string reducedCategory = category.Substring(0, category.LastIndexOf('|')); // index = reducedCategory.LastIndexOf("|"); // nodeText = reducedCategory.Substring(index + 1); // categoryNode = new UltraTreeNode(reducedCategory, nodeText); // categoryNode.Tag = parentNode.Tag; // //categoryNode.LeftImages.Add(IconMapping.LoadIcon(icon, IconMapping.ICONSIZE.small)); // try // { // parentNode.Nodes.Add(categoryNode); // // Recurse to check for child categories of the category we have just added // PopulateSystemPatches(categoryNode); // } // catch (Exception ex) // { // } // } // else // { // // We display just the last portion of the category name as the node text // index = category.LastIndexOf("|"); // nodeText = category.Substring(index + 1); // // Add the category itself // categoryNode = new UltraTreeNode(category, nodeText); // categoryNode.Tag = parentNode.Tag; // //categoryNode.LeftImages.Add(IconMapping.LoadIcon(icon, IconMapping.ICONSIZE.small)); // categoryNode.Override.ShowExpansionIndicator = ShowExpansionIndicator.CheckOnExpand; // nodes[i] = categoryNode; // } // } // parentNode.Nodes.AddRange(nodes); // // Now check for any NAMES within this category // DataTable namesTable = lwDataAccess.GetAuditedItemCategoryNames(parentNode.Key); // UltraTreeNode[] namesNodes = new UltraTreeNode[namesTable.Rows.Count]; // // Add any NAMES after the Categories // for (int j = 0; j < namesTable.Rows.Count; j++) // { // DataRow row = namesTable.Rows[j]; // category = (string)row["_CATEGORY"]; // name = (string)row["_NAME"]; // //icon = (string)row["_ICON"]; // // Add the NAME node // nameKey = category + "|" + name; // nameNode = new UltraTreeNode(nameKey, name); // nameNode.Tag = parentNode.Tag; // //nameNode.LeftImages.Add(IconMapping.LoadIcon(icon, IconMapping.ICONSIZE.small)); // nameNode.Override.NodeStyle = _valueNodeStyle; // namesNodes[j] = nameNode; // } // parentNode.Nodes.AddRange(namesNodes); // // If no sub-categories or Names then set the expansion indicator to none // if ((categoryTable.Rows.Count == 0) && (namesTable.Rows.Count == 0)) // parentNode.Override.ShowExpansionIndicator = ShowExpansionIndicator.Never; //} protected void PopulateHardware(UltraTreeNode parentNode) { AuditedItemsDAO lwDataAccess = new AuditedItemsDAO(); DataTable categoryTable = lwDataAccess.GetAuditedItemCategories(parentNode.Key); DataRow catRow; UltraTreeNode categoryNode, nameNode; UltraTreeNode[] nodes; int index; string nodeText, category, name, nameKey; //parentNode.Nodes.Clear(); if (parentNode.Key == "System|Patches") { for (int i = 0; i < categoryTable.Rows.Count; i++) { catRow = categoryTable.Rows[i]; category = (string)catRow["_CATEGORY"]; string reducedCategory = category.Substring(0, category.LastIndexOf('|')); index = reducedCategory.LastIndexOf("|"); nodeText = reducedCategory.Substring(index + 1); categoryNode = new UltraTreeNode(reducedCategory, nodeText); categoryNode.Tag = parentNode.Tag; categoryNode.Override.ShowExpansionIndicator = ShowExpansionIndicator.CheckOnExpand; if (fieldsTree.GetNodeByKey(reducedCategory) == null) { parentNode.Nodes.Add(categoryNode); } } } else { nodes = new UltraTreeNode[categoryTable.Rows.Count]; // Iterate through the returned rows and add the text and icon to the tree // All the returned items are categories for (int i = 0; i < categoryTable.Rows.Count; i++) { catRow = categoryTable.Rows[i]; category = (string)catRow["_CATEGORY"]; // We display just the last portion of the category name as the node text index = category.LastIndexOf("|"); nodeText = category.Substring(index + 1); // Add the category itself categoryNode = new UltraTreeNode(category, nodeText); categoryNode.Tag = parentNode.Tag; categoryNode.Override.ShowExpansionIndicator = ShowExpansionIndicator.CheckOnExpand; nodes[i] = categoryNode; } parentNode.Nodes.AddRange(nodes); } // Now check for any NAMES within this category - only need to do this if there were no categories DataTable namesTable = new DataTable(); if (categoryTable.Rows.Count == 0) { namesTable = lwDataAccess.GetAuditedItemCategoryNames(parentNode.Key); UltraTreeNode[] namesNodes = new UltraTreeNode[namesTable.Rows.Count]; // Add any NAMES after the Categories for (int j = 0; j < namesTable.Rows.Count; j++) { DataRow row = namesTable.Rows[j]; category = (string)row["_CATEGORY"]; name = (string)row["_NAME"]; // Add the NAME node nameKey = category + "|" + name; nameNode = new UltraTreeNode(nameKey, name); nameNode.Tag = parentNode.Tag; nameNode.Override.NodeStyle = _valueNodeStyle; namesNodes[j] = nameNode; } parentNode.Nodes.AddRange(namesNodes); } // If no sub-categories or Names then set the expansion indicator to none if ((categoryTable.Rows.Count == 0) && (namesTable.Rows.Count == 0)) { parentNode.Override.ShowExpansionIndicator = ShowExpansionIndicator.Never; } }