public virtual ActionResult ApplyWidgetPermissions(PermissionsModel model) { var widgetService = ServiceLocator.Current.GetInstance <IPageWidgetService>(); PageWidget pageWidget = widgetService.Find(model.EntityId); if (pageWidget != null && pageWidget.Widget != null) { ICoreWidget coreWidget = MvcApplication.Widgets.FirstOrDefault(wd => wd.Identifier == pageWidget.Widget.Identifier); ICorePrincipal currentPrincipal = this.CorePrincipal(); bool isOwner = currentPrincipal != null && pageWidget.User != null && currentPrincipal.PrincipalId == pageWidget.User.PrincipalId; if (coreWidget != null && coreWidget is BaseWidget && permissionService.IsAllowed(((BaseWidget)coreWidget).PermissionOperationCode, currentPrincipal, coreWidget.GetType(), pageWidget.Id, isOwner, PermissionOperationLevel.Object)) { permissionHelper.ApplyPermissions(model, coreWidget.GetType()); if (permissionService.IsAllowed(((BaseWidget)coreWidget).PermissionOperationCode, currentPrincipal, coreWidget.GetType(), pageWidget.Id, isOwner, PermissionOperationLevel.Object)) { return(Content(Url.Action(MVC.Pages.Show(pageWidget.Page.Url)))); } } } return(Content(Url.Action(MVC.Home.Index()))); }
protected void PageWidget_Save_Click(object sender, EventArgs e) { PageWidget widget = Widgets.Fetch(new Guid(Request.QueryString["id"])) as PageWidget; if (widget == null) { throw new Exception("The widget does not exist"); } try { List <int> postIds = new List <int>(); foreach (Telligent.Glow.OrderedListItem item in existing_items.Items) { postIds.Add(int.Parse(item.Value)); } widget.PostIds = postIds.ToArray(); widget.Title = txtTitle.Text; Widgets.Save(widget); ZCache.RemoveCache(widget.DataCacheKey); Response.Redirect("?ws=" + widget.Id); } catch (Exception ex) { Message.Text = "Your widget called not be saved. Reason: " + ex.Message; Message.Type = StatusType.Error; return; } }
public void AddWidget(PageWidget widget) { if (widget == null) throw new ArgumentNullException("widget"); widgets.Add(widget); }
/// <summary> /// Gets the widget view model. /// </summary> /// <param name="pageWidgetId">The page widget id.</param> /// <returns></returns> public static WidgetHolderViewModel GetWidgetViewModel(long pageWidgetId) { var pageWidgetService = ServiceLocator.Current.GetInstance <IPageWidgetService>(); PageWidget pageWidget = pageWidgetService.Find(pageWidgetId); return(GetWidgetViewModel(pageWidget)); }
public ActionResult DeleteConfirmed(int id) { PageWidget pageWidget = db.PageWidgets.Find(id); db.PageWidgets.Remove(pageWidget); db.SaveChanges(); return(RedirectToAction("Index")); }
public static XElement ToXElement(this PageWidget widget) { return(new XElement("PageWidget", new XElement("PageId", widget.PageId), new XElement("WidgetId", widget.WidgetId), new XElement("ZoneName", widget.ZoneName), new XElement("DisplayOrder", widget.DisplayOrder) )); }
[HttpPost] // patch for shared server compatibility, usually would use [HttpPut] public JsonNetResult UpdatePageWidget(PageWidgetModel model) { PageWidget widget = Mapper.Map <PageWidget>(model); _pageWidgetRepository.Update(widget); Mapper.Map(widget, model); return(new JsonNetResult(model)); }
public virtual ActionResult ShowWidgetCSS(long pageWidgetId) { var widgetService = ServiceLocator.Current.GetInstance <IPageWidgetService>(); PageWidget widget = widgetService.Find(pageWidgetId); PageWidgetSettings widgetSetting = widget.Settings ?? new PageWidgetSettings { Widget = widget }; return(PartialView(MVC.Shared.Views.Widgets.WidgetCSSSettings, new WidgetCSSModel().MapFrom(widgetSetting))); }
/// <summary> /// Clones the widget instance. /// </summary> /// <param name="widget">The widget.</param> /// <returns></returns> private static long?CloneWidgetInstance(PageWidget widget) { var systemWidget = MvcApplication.Widgets.FirstOrDefault(w => w.Identifier == widget.Widget.Identifier); if (widget.InstanceId != null) { return(systemWidget.Clone(new CoreWidgetInstance { InstanceId = widget.InstanceId, WidgetIdentifier = systemWidget.Identifier })); } return(null); }
public static bool ClonePageSettingsFromTemplate(Page template, Page targetPage, long?widgetId) { var pageService = ServiceLocator.Current.GetInstance <IPageService>(); var permissionCommonService = ServiceLocator.Current.GetInstance <IPermissionCommonService>(); template.Widgets.Where(widget => widget.Widget.IsPlaceHolder).AsParallel().ForAll(widget => { var pageWidget = new PageWidget(); pageWidget.InjectFrom <CloneEntityInjection>(widget); pageWidget.Page = targetPage; pageWidget.ParentWidgetId = widget.Id; //copy widget settings if (widget.Settings != null) { pageWidget.Settings = (PageWidgetSettings) new PageWidgetSettings().InjectFrom <CloneEntityInjection>(widget.Settings); pageWidget.Settings.LookAndFeelSettings = new LookAndFeelSettings().InjectFrom <CloneEntityInjection>(widget.Settings.LookAndFeelSettings) as LookAndFeelSettings; pageWidget.Settings.Widget = pageWidget; } if (widgetId.HasValue) { var widgetService = ServiceLocator.Current.GetInstance <IWidgetService>(); pageWidget.Widget = widgetService.Find(widgetId.Value); } pageWidget.TemplateWidgetId = widget.Id; targetPage.AddWidget(pageWidget); }); targetPage.Template = template; if (pageService.Save(targetPage)) { //copy permissions and update page styles foreach (var item in targetPage.Widgets) { if (item.ParentWidgetId == null) { continue; } var systemWidget = MvcApplication.Widgets.FirstOrDefault(w => w.Identifier == item.Widget.Identifier); var sourceWidget = template.Widgets.FirstOrDefault(w => w.Id == item.ParentWidgetId); if (sourceWidget != null) { if (targetPage.Settings != null && !String.IsNullOrEmpty(targetPage.Settings.CustomCSS)) { targetPage.Settings.CustomCSS = targetPage.Settings.CustomCSS.Replace(String.Format(PageWidgetTemplate, sourceWidget.Id), String.Format(PageWidgetTemplate, item.Id)); } permissionCommonService.CloneObjectPermisions(systemWidget.GetType(), sourceWidget.Id, item.Id); } } return(pageService.Save(targetPage)); } return(false); }
public ActionResult Edit([Bind(Include = "ID,PageID,SectionID,WidgetID,Position,Region,Sort")] PageWidget pageWidget) { if (ModelState.IsValid) { db.Entry(pageWidget).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.PageID = new SelectList(db.Pages, "ID", "Name", pageWidget.PageID); ViewBag.SectionID = new SelectList(db.Sections, "ID", "Name", pageWidget.SectionID); ViewBag.WidgetID = new SelectList(db.Widgets, "ID", "Title", pageWidget.WidgetID); return(View(pageWidget)); }
protected void Page_Load(object sender, EventArgs e) { LiHyperLink.SetNameToCompare(Context, "presentation"); if (!IsPostBack) { PageWidget widget = Widgets.Fetch(new Guid(Request.QueryString["id"])) as PageWidget; if (widget == null) { throw new Exception("The widget does not exist"); } BindData(widget); } }
// GET: Admin/PageWidget/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PageWidget pageWidget = db.PageWidgets.Find(id); if (pageWidget == null) { return(HttpNotFound()); } return(View(pageWidget)); }
/// <summary> /// Adds the widget to page. /// </summary> /// <param name="pageId">The page id.</param> /// <param name="widgetId">The widget id.</param> /// <param name="user">The user.</param> /// <param name="templateWidgetId">The template widget id.</param> /// <returns></returns> public static PageWidget AddWidgetToPage(long pageId, long?widgetId, ICorePrincipal user, long?templateWidgetId) { var pageService = ServiceLocator.Current.GetInstance <IPageService>(); var widgetService = ServiceLocator.Current.GetInstance <IWidgetService>(); var pageWidgetService = ServiceLocator.Current.GetInstance <IPageWidgetService>(); var page = pageService.Find(pageId); if (page != null) { page.Widgets.Update( wd => { wd.OrderNumber = wd.ColumnNumber == 1 ? wd.OrderNumber + 1 : wd.OrderNumber; } ); pageService.Save(page); Widget widget = widgetService.Find(widgetId ?? 0); if (widget == null || widgetService.IsWidgetEnable(widget)) { var newPageWidget = new PageWidget { Page = page, ColumnNumber = 1, OrderNumber = 1, User = user != null ? new User { Id = user.PrincipalId } : null, Widget = widget, }; if (templateWidgetId.HasValue) { newPageWidget.TemplateWidgetId = templateWidgetId; } if (pageWidgetService.Save(newPageWidget)) { return(newPageWidget); } } } return(null); }
// GET: Admin/PageWidget/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PageWidget pageWidget = db.PageWidgets.Find(id); if (pageWidget == null) { return(HttpNotFound()); } ViewBag.PageID = new SelectList(db.Pages, "ID", "Name", pageWidget.PageID); ViewBag.SectionID = new SelectList(db.Sections, "ID", "Name", pageWidget.SectionID); ViewBag.WidgetID = new SelectList(db.Widgets, "ID", "Title", pageWidget.WidgetID); return(View(pageWidget)); }
private void BindData(PageWidget widget) { txtTitle.Text = widget.Title; Query q = Post.CreateQuery(); q.AndWhere(Post.Columns.CategoryId, CategoryController.UnCategorizedId); q.AndWhere(Post.Columns.IsDeleted, false); q.AndWhere(Post.Columns.Status, 1); PostCollection pc = new PostCollection(); pc.LoadAndCloseReader(q.ExecuteReader()); PostCollection pcInUse = new PostCollection(); PostCollection pcNotInUse = new PostCollection(); foreach (int i in widget.PostIds) { bool found = false; foreach (Post p in pc) { if (i == p.Id) { pcInUse.Add(p); found = true; } } if (found) { pc.Remove(pcInUse[pcInUse.Count - 1]); } } the_Posts.DataSource = pc; the_Posts.DataBind(); existing_items.Items.Clear(); foreach (Post p in pcInUse) { existing_items.Items.Add(new OrderedListItem(string.Format(ItemFormat, p.Name, p.Id), p.Name, p.Id.ToString())); } }
/// <summary> /// Gets the widget view model. /// </summary> /// <param name="pageWidget">The page widget.</param> /// <returns></returns> public static WidgetHolderViewModel GetWidgetViewModel(PageWidget pageWidget) { if (pageWidget == null || pageWidget.Widget == null) { return(null); } ICoreWidget coreWidget = MvcApplication.Widgets.FirstOrDefault(wd => wd.Identifier == pageWidget.Widget.Identifier); var permissionService = ServiceLocator.Current.GetInstance <IPermissionCommonService>(); ICorePrincipal currentPrincipal = HttpContext.Current.CorePrincipal(); var widgetModel = new WidgetHolderViewModel { Widget = pageWidget, WidgetInstance = new CoreWidgetInstance { InstanceId = pageWidget.InstanceId, WidgetIdentifier = pageWidget.Widget.Identifier, PageSettings = new CorePageSettings { PageId = pageWidget.Page.Id }, PageWidgetId = pageWidget.Id }, SystemWidget = coreWidget, Access = coreWidget is BaseWidget? permissionService.GetAccess(((BaseWidget)coreWidget).Operations, HttpContext.Current.CorePrincipal(), coreWidget.GetType(), pageWidget.EntityId, currentPrincipal != null && pageWidget.User != null && pageWidget.User.PrincipalId == currentPrincipal.PrincipalId) : null, PageAccess = permissionService.GetAccess(pageWidget.Page.Operations, currentPrincipal, typeof(Page), pageWidget.Page.Id, currentPrincipal != null && pageWidget.Page.User != null && pageWidget.Page.User.PrincipalId == currentPrincipal.PrincipalId), }; if (pageWidget.Page.IsTemplate && pageWidget.Widget.IsPlaceHolder) { widgetModel.Access[((BaseWidget)widgetModel.SystemWidget).PermissionOperationCode] = false; } return(widgetModel); }
/// <summary> /// Toggles state of widget in panel. /// </summary> /// <param name="stackPanel">Stack panel.</param> /// <param name="ignoredWidgets">Ignored widget collection</param> /// <param name="isEnable">Enable state flag.</param> public void ToggleTaskPanelWidgetsState(StackPanel stackPanel, ICollection <Type> ignoredWidgets, bool isEnable) { foreach (UIElement expanderControl in stackPanel.Children) { Type type = expanderControl.GetType(); if (type == typeof(ExpanderControl) && (null != expanderControl)) { ExpanderControl expander = (ExpanderControl)expanderControl; Type widgetType = expander.ContentOfExpander.GetType(); if (!ignoredWidgets.Contains(widgetType)) { PageWidget widget = (PageWidget)expander.ContentOfExpander; widget.IsEnabled = isEnable; } } } }
/// <summary> /// Determines whether [is manage widget allowed] [the specified widget identifier]. /// </summary> /// <param name="pageWidget">The page widget.</param> /// <param name="user">The user.</param> /// <param name="entityId">The entity id.</param> /// <returns> /// <c>true</c> if [is manage widget allowed] [the specified widget identifier]; otherwise, <c>false</c>. /// </returns> public static bool IsManageWidgetAllowed(PageWidget pageWidget, ICorePrincipal user, long entityId) { bool isAllowed = true; if (pageWidget.Widget != null) { ICoreWidget widget = MvcApplication.Widgets.FirstOrDefault(item => item.Identifier == pageWidget.Widget.Identifier); if (widget != null && widget is BaseWidget) { bool isOwner = pageWidget.User != null && user != null && pageWidget.User.PrincipalId == user.PrincipalId; var permissionService = ServiceLocator.Current.GetInstance <IPermissionCommonService>(); isAllowed = permissionService.IsAllowed((widget as BaseWidget).ManageOperationCode, user, widget.GetType(), entityId, isOwner, PermissionOperationLevel.Object); } } return(isAllowed); }
/// <summary> /// Shows the widget permissions. /// </summary> /// <param name="pageWidgetId">The page widget id.</param> /// <returns></returns> public virtual ActionResult ShowWidgetPermissions(long pageWidgetId) { var widgetService = ServiceLocator.Current.GetInstance <IPageWidgetService>(); PageWidget pageWidget = widgetService.Find(pageWidgetId); if (pageWidget == null || pageWidget.Widget == null) { throw new HttpException((int)HttpStatusCode.NotFound, Translate("Messages.NotFound")); } ICoreWidget coreWidget = MvcApplication.Widgets.FirstOrDefault(wd => wd.Identifier == pageWidget.Widget.Identifier); ICorePrincipal currentPrincipal = this.CorePrincipal(); bool isOwner = currentPrincipal != null && pageWidget.User != null && currentPrincipal.PrincipalId == pageWidget.User.PrincipalId; if (coreWidget == null || !(coreWidget is BaseWidget) || !permissionService.IsAllowed(((BaseWidget)coreWidget).PermissionOperationCode, currentPrincipal, coreWidget.GetType(), pageWidgetId, isOwner, PermissionOperationLevel.Object)) { throw new HttpException((int)HttpStatusCode.NotFound, Translate("Messages.NotFound")); } return(PartialView(MVC.Shared.Views.Widgets.WidgetPermissions, permissionHelper.BindPermissionsModel(pageWidgetId, coreWidget.GetType(), true))); }
/// <summary> /// Unlinks the page. /// </summary> /// <param name="page">The page.</param> public static void UnlinkPage(Page page) { var pageService = ServiceLocator.Current.GetInstance <IPageService>(); var permissionCommonService = ServiceLocator.Current.GetInstance <IPermissionCommonService>(); var pageWidgetService = ServiceLocator.Current.GetInstance <IPageWidgetService>(); if (page.Template != null) { page.Template.Widgets.AsEnumerable().Each(widget => { PageWidget pageWidget = null; if (widget.Widget.IsPlaceHolder) { pageWidget = page.Widgets.FirstOrDefault( currentPageWidget => currentPageWidget.TemplateWidgetId == widget.Id); pageWidget.ColumnNumber = widget.ColumnNumber; pageWidget.OrderNumber = widget.OrderNumber; pageWidget.TemplateWidgetId = null; } if (pageWidget == null) { pageWidget = new PageWidget(); pageWidget.InjectFrom <CloneEntityInjection>(widget); pageWidget.Page = page; pageWidget.ParentWidgetId = widget.Id; //copy widget settings if (widget.Settings != null) { pageWidget.Settings = (PageWidgetSettings) new PageWidgetSettings().InjectFrom <CloneEntityInjection>(widget.Settings); pageWidget.Settings.LookAndFeelSettings = new LookAndFeelSettings().InjectFrom <CloneEntityInjection>( widget.Settings. LookAndFeelSettings) as LookAndFeelSettings; pageWidget.Settings.Widget = pageWidget; } //clone page widget instance if (widget.InstanceId != null) { pageWidget.InstanceId = CloneWidgetInstance(widget); } //TODO: save collection pageWidgetService.Save(pageWidget); page.AddWidget(pageWidget); } }); //copy page layout page.PageLayout = (PageLayout) new PageLayout().InjectFrom <CloneEntityInjection>( page.Template.PageLayout); page.PageLayout.Page = page; page.Template.PageLayout.ColumnWidths.AsParallel().ForAll(column => { var columnWidth = (PageLayoutColumnWidthValue) new PageLayoutColumnWidthValue(). InjectFrom <CloneEntityInjection>( column); columnWidth.PageLayout = page.PageLayout; page.PageLayout.AddColumnWidth( columnWidth); }); //copy page settings) if (page.Template.Settings != null) { page.Settings = (PageSettings) new PageSettings().InjectFrom <CloneEntityInjection>(page.Template.Settings); page.Settings.LookAndFeelSettings = (LookAndFeelSettings) new LookAndFeelSettings().InjectFrom <CloneEntityInjection>( page.Template.Settings.LookAndFeelSettings); page.Settings.Page = page; } if (pageService.Save(page)) { //copy permissions and update page styles foreach (var item in page.Widgets) { if (item.ParentWidgetId == null) { continue; } var systemWidget = MvcApplication.Widgets.FirstOrDefault(w => w.Identifier == item.Widget.Identifier); var sourceWidget = page.Template.Widgets.FirstOrDefault(w => w.Id == item.ParentWidgetId); if (sourceWidget != null) { if (page.Settings != null && !String.IsNullOrEmpty(page.Settings.CustomCSS)) { page.Settings.CustomCSS = page.Settings.CustomCSS.Replace( String.Format(PageWidgetTemplate, sourceWidget.Id), String.Format(PageWidgetTemplate, item.Id)); } permissionCommonService.CloneObjectPermisions(systemWidget.GetType(), sourceWidget.Id, item.Id); } } page.Template = null; pageService.Save(page); } } }
private void MapFromTemplate(Page page) { HasTemplate = true; Layout = page.Template.PageLayout; Settings = page.Template.Settings; Access[PageTemplate.UnlinkOperationCode] = Access[(int)PageOperations.Update]; Access[(int)PageOperations.Update] = false; ICorePrincipal currentPrincipal = HttpContext.Current.CorePrincipal(); var widgetService = ServiceLocator.Current.GetInstance <IWidgetService>(); foreach (var widget in page.Template.Widgets.OrderBy(wd => wd.OrderNumber)) { var widgetToShow = !widget.Widget.IsPlaceHolder ? widget : page.Widgets.Where(pageWidget => pageWidget.TemplateWidgetId == widget.Id). FirstOrDefault(); if (widget.Widget.IsPlaceHolder) { widgetToShow.PageSection = widget.PageSection; widgetToShow.ColumnNumber = widget.ColumnNumber; } PageWidget widget1 = widgetToShow; ICoreWidget coreWidget = widgetToShow.Widget != null?MvcApplication.Widgets.FirstOrDefault(wd => wd.Identifier == widget1.Widget.Identifier) : null; bool isWidetEnabled = widgetService.IsWidgetEnable(widget1.Widget); var widgetModel = new WidgetHolderViewModel { WidgetInstance = new CoreWidgetInstance { InstanceId = widgetToShow.InstanceId, WidgetIdentifier = coreWidget != null ? coreWidget.Identifier : null, PageSettings = new CorePageSettings { PageId = page.Template.Id }, PageWidgetId = widgetToShow.Id }, Widget = widget1, Access = coreWidget is BaseWidget ? permissionService.GetAccess( ((BaseWidget)coreWidget).Operations, HttpContext.Current.CorePrincipal(), coreWidget.GetType(), widget1.EntityId, currentPrincipal != null && widget1.User != null && widget1.User.PrincipalId == currentPrincipal.PrincipalId) : null, PageAccess = Access, SystemWidget = (isWidetEnabled && coreWidget != null) ? coreWidget : null }; if (!widget.Widget.IsPlaceHolder) { widgetModel.Access[((BaseWidget)widgetModel.SystemWidget).ManageOperationCode] = false; widgetModel.Access[((BaseWidget)widgetModel.SystemWidget).PermissionOperationCode] = false; } Widgets.Add(widgetModel); if (coreWidget != null && coreWidget.Plugin != null) { if (!PagePlugins.Any(t => t.PluginLocation == coreWidget.Plugin.PluginLocation)) { PagePlugins.Add(coreWidget.Plugin); } if (coreWidget is BaseWorkflowWidget) { var workflowWidget = (BaseWorkflowWidget)coreWidget; foreach (var innerPlugin in workflowWidget.InnerPlugins) { ICorePlugin plugin = innerPlugin; if (!PagePlugins.Any(t => t.Identifier == plugin.Identifier)) { PagePlugins.Add(plugin); } } } } } }
/// <summary> /// Clones the target page settings to source page. /// </summary> /// <param name="sourcePage">The source page.</param> /// <param name="targetPage">The target page.</param> /// <returns></returns> public static bool ClonePageSettings(Page sourcePage, Page targetPage) { var pageService = ServiceLocator.Current.GetInstance <IPageService>(); var permissionCommonService = ServiceLocator.Current.GetInstance <IPermissionCommonService>(); sourcePage.Widgets.AsParallel().ForAll(widget => { var pageWidget = new PageWidget(); pageWidget.InjectFrom <CloneEntityInjection>(widget); pageWidget.Page = targetPage; pageWidget.ParentWidgetId = widget.Id; //copy widget settings if (widget.Settings != null) { pageWidget.Settings = (PageWidgetSettings) new PageWidgetSettings().InjectFrom <CloneEntityInjection>(widget.Settings); pageWidget.Settings.LookAndFeelSettings = new LookAndFeelSettings().InjectFrom <CloneEntityInjection>(widget.Settings.LookAndFeelSettings) as LookAndFeelSettings; pageWidget.Settings.Widget = pageWidget; } //clone page widget instance if (widget.InstanceId != null) { pageWidget.InstanceId = CloneWidgetInstance(widget); } targetPage.AddWidget(pageWidget); }); //copy page layout targetPage.PageLayout = (PageLayout) new PageLayout { Id = targetPage.PageLayout.Id }.InjectFrom <CloneEntityInjection>(sourcePage.PageLayout); targetPage.PageLayout.Page = targetPage; sourcePage.PageLayout.ColumnWidths.AsParallel().ForAll(column => { var columnWidth = (PageLayoutColumnWidthValue) new PageLayoutColumnWidthValue().InjectFrom <CloneEntityInjection>(column); columnWidth.PageLayout = targetPage.PageLayout; targetPage.PageLayout.AddColumnWidth(columnWidth); }); //copy page settings) if (sourcePage.Settings != null) { targetPage.Settings = (PageSettings) new PageSettings().InjectFrom <CloneEntityInjection>(sourcePage.Settings); targetPage.Settings.LookAndFeelSettings = (LookAndFeelSettings) new LookAndFeelSettings().InjectFrom <CloneEntityInjection>(sourcePage.Settings.LookAndFeelSettings); targetPage.Settings.Page = targetPage; } if (pageService.Save(targetPage)) { //copy permissions and update page styles foreach (var item in targetPage.Widgets) { if (item.ParentWidgetId == null) { continue; } var systemWidget = MvcApplication.Widgets.FirstOrDefault(w => w.Identifier == item.Widget.Identifier); var sourceWidget = sourcePage.Widgets.FirstOrDefault(w => w.Id == item.ParentWidgetId); if (sourceWidget != null) { if (targetPage.Settings != null && !String.IsNullOrEmpty(targetPage.Settings.CustomCSS)) { targetPage.Settings.CustomCSS = targetPage.Settings.CustomCSS.Replace(String.Format(PageWidgetTemplate, sourceWidget.Id), String.Format(PageWidgetTemplate, item.Id)); } permissionCommonService.CloneObjectPermisions(systemWidget.GetType(), sourceWidget.Id, item.Id); } } return(pageService.Save(targetPage)); } return(false); }