private void PopulateChildItems(Core.Menu menu, DataTable dt, DataRow currentRow, Core.MenuItem menuItem, bool addToMenu) { bool containsParentID = dt.Columns.Contains("ParentID"); if (containsParentID) { DataRow[] rows = dt.Select(String.Format("ParentID = {0}", currentRow["MenuItemID"])); AddMenuItems(menu, dt, menuItem, rows, addToMenu); } }
private CodeTorch.Core.Menu PopulateDynamicMenuItems(CodeTorch.Core.Menu menuObject) { CodeTorch.Core.Menu retVal = null; DataCommandService dataCommandDB = DataCommandService.GetInstance(); List <ScreenDataCommandParameter> parameters = new List <ScreenDataCommandParameter>(); var items = from item in menuObject.Items where item.UseCommand == true select item; if (items.Count() > 0) { retVal = new Core.Menu(); retVal.Name = menuObject.Name; retVal.CssClass = menuObject.CssClass; foreach (Core.MenuItem item in menuObject.Items) { if (item.UseCommand == false) { Core.MenuItem copiedItem = ObjectCopier.Clone <Core.MenuItem>(item); retVal.Items.Add(copiedItem); } else { DataCommand cmd = DataCommand.GetDataCommand(item.CommandName); foreach (DataCommandParameter cmdParam in cmd.Parameters) { ScreenDataCommandParameter p = new ScreenDataCommandParameter(); //TODO: need to support context with multiple items - presently assumes one item if (!String.IsNullOrEmpty(item.Context)) { if (cmdParam.Name.ToLower().EndsWith(item.Context.ToLower())) { p.Name = cmdParam.Name; p.InputType = ScreenInputType.QueryString; p.InputKey = item.Context; p.Value = this.Page.Request.QueryString[item.Context]; } } if (cmdParam.Name.ToLower().EndsWith("username")) { p.Name = cmdParam.Name; p.InputType = ScreenInputType.Special; p.InputKey = "UserName"; p.Value = Common.UserName; } if (cmdParam.Name.ToLower().EndsWith("hostheader")) { p.Name = cmdParam.Name; p.InputType = ScreenInputType.Special; p.InputKey = "HostHeader"; p.Value = Common.HostHeader; } parameters.Add(p); } DataTable dt = dataCommandDB.GetDataForDataCommand(item.CommandName, parameters); DataRow[] rows = null; bool containsParentID = dt.Columns.Contains("ParentID"); if (containsParentID) { rows = dt.Select("ParentID IS NULL"); } else { rows = dt.Select(); } AddMenuItems(retVal, dt, item, rows, true); } } } else { retVal = menuObject; } return(retVal); }