コード例 #1
0
        private void LoadMainMenu()
        {
            IMenuItemService menuItemService = null;
            MenuItem         menuItem        = null;
            MenuItem         menuItemParent  = null;
            MenuItem         menuItemChild   = null;
            List <DataService.Entity.MenuItem> listMenuItems = null;
            List <MenuItem> formMenu   = null;
            List <MenuItem> sortedMenu = null;

            try
            {
                menuItemService = new MenuItemService();
                listMenuItems   = menuItemService.GetAllByRole(Session.GetRole());
                listMenuItems   = listMenuItems.OrderBy(l => l.Order).ToList();
                formMenu        = new List <MenuItem>();
                sortedMenu      = new List <MenuItem>();

                foreach (var mi in listMenuItems)
                {
                    if (mi.Level == 0)
                    {
                        menuItem = new MenuItem(mi.Name);
                    }
                    else
                    {
                        menuItem = new MenuItem(mi.Name, menuItem_Click);
                    }
                    formMenu.Add(menuItem);

                    //Loads to constaint
                    Utilities.MenuItemNames.Add(mi.Name, mi.Name);
                }

                foreach (var mi in listMenuItems)
                {
                    if (mi.Level != 0)
                    {
                        menuItemParent = formMenu.Where(f => f.Text == mi.ParentName).FirstOrDefault();
                        menuItemChild  = formMenu.Where(f => f.Text == mi.Name).FirstOrDefault();
                        menuItemParent.MenuItems.Add(menuItemChild);
                    }
                }

                foreach (var mi in listMenuItems)
                {
                    if (mi.Level == 0)
                    {
                        sortedMenu.Add(formMenu.Where(f => f.Text == mi.Name).FirstOrDefault());
                    }
                }

                foreach (var item in sortedMenu)
                {
                    CreateMenuItems(item);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                menuItemService = null;
                menuItem        = null;
                listMenuItems   = null;
                formMenu        = null;
                sortedMenu      = null;
            }
        }