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