public static Menu BuildMenu(ControllerContext controllerContext, string menuName, string areaName, bool initialize)
        {
            Menu menu = new Menu();

            MenuTemplate menuTemplate = new MenuTemplate();
            if (!string.IsNullOrEmpty(menuName) && menuTemplates.ContainsKey(menuName))
            {
                menuTemplate = menuTemplates[menuName];
            }
            else
            {
                menuTemplate = defaultMenu;
            }
            menu.Name = menuName;

            menu.Items = GetItems(areaName, menuTemplate.ItemContainers, controllerContext);

            InjectMenu(menu, controllerContext);

            if (initialize)
            {
                menu.Initialize(controllerContext);
            }

            return menu;
        }
 private static void InjectMenu(Menu menu, ControllerContext controllerContext)
 {
     var injections = Kooboo.Common.ObjectContainer.EngineContext.Current.ResolveAll<IMenuInjection>();
     foreach (var injection in injections)
     {
         injection.Inject(menu, controllerContext);
     }
 }