public virtual ActionResult EditWidget(ICoreWidgetInstance instance)
        {
            if (instance != null)
            {
                var widget = new BreadcrumbsWidget();

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

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

            return(Content(String.Empty));
        }
Exemple #2
0
        /// <summary>
        /// Binds the widget model.
        /// </summary>
        /// <param name="instance">The instance.</param>
        /// <param name="user">The user.</param>
        /// <returns></returns>
        public static IEnumerable <BreadcrumbsItem> BindWidgetModel(ICoreWidgetInstance instance, ICorePrincipal user)
        {
            var widgetService    = ServiceLocator.Current.GetInstance <IBreadcrumbsWidgetService>();
            var breadcrumbsPages = new List <BreadcrumbsItem>();

            BreadcrumbsWidget widget = widgetService.Find(instance.InstanceId ?? 0);

            if (widget != null && instance.PageSettings != null)
            {
                var pageService = ServiceLocator.Current.GetInstance <IPageService>();

                IEnumerable <Page> pages = pageService.GetAllowedPagesByOperation(user, (int)PageOperations.View);

                Page currentPage = pages.FirstOrDefault(pg => pg.Id == instance.PageSettings.PageId);

                if (currentPage != null)
                {
                    Page activePage = currentPage;

                    while (activePage != null)
                    {
                        breadcrumbsPages.Add(new BreadcrumbsItem {
                            Title = activePage.Title, Url = activePage.Url
                        });
                        Page page = activePage;
                        activePage = pages.FirstOrDefault(pg => pg.Id == page.ParentPageId);
                    }
                    if (widget.ShowHomePage)
                    {
                        breadcrumbsPages.Add(new BreadcrumbsItem {
                            Title = "Core Framework", IsHomePage = true
                        });
                    }
                    breadcrumbsPages.Reverse();
                }
            }
            return(breadcrumbsPages);
        }