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; } }