Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }