Esempio n. 1
0
        public virtual ActionResult EditWidget(ICoreWidgetInstance instance)
        {
            if (instance != null)
            {
                var widget = new NavigationMenuWidget();

                if (instance.InstanceId != null)
                {
                    var widgetService  = ServiceLocator.Current.GetInstance <INavigationMenuWidgetService>();
                    var existingWidget = widgetService.Find((long)instance.InstanceId);

                    if (existingWidget != null)
                    {
                        widget = existingWidget;
                    }
                }
                return(PartialView(new NavigationMenuWidgetModel().MapFrom(widget)));
            }

            return(Content(String.Empty));
        }
        /// <summary>
        /// Gets the navigation menu.
        /// </summary>
        /// <returns></returns>
        public static PartialNavigationMenuModel GetNavigationMenu(ICorePrincipal user, NavigationMenuWidget widget)
        {
            var pageService = ServiceLocator.Current.GetInstance <IPageService>();
            var pages       = pageService.GetAllowedPagesByOperation(user, (int)PageOperations.View).OrderBy(page => page.OrderNumber);

            var menuItems = new List <PartialNavigationMenuItemModel>();

            List <PartialNavigationMenuItemModel> items = pages.Select(page => new PartialNavigationMenuItemModel
            {
                Page = page
            }).ToList();

            foreach (var item in items)
            {
                if (item.Page.ParentPageId == null)
                {
                    item.Children = Flatten(item, items, 2);
                    menuItems.Add(item);
                }
            }

            return(new PartialNavigationMenuModel
            {
                MenuItems = menuItems,
                WidgetId = widget.Id,
                Orientation = widget.Orientation
            });
        }