public override void Remove(Expression <Func <PageEntity, bool> > filter) { BeginTransaction(() => { var deletePages = Get(filter).ToList(); if (deletePages.Any()) { List <PageEntity> allPages = new List <PageEntity>(); foreach (var item in deletePages) { allPages.AddRange(LoadChildren(item)); } allPages.AddRange(deletePages); var allPageIds = allPages.Select(n => n.ID).ToArray(); allPages.AddRange(Get(m => allPageIds.Contains(m.ReferencePageID))); allPageIds = allPages.Select(n => n.ID).ToArray(); var widgets = _widgetService.Get(m => allPageIds.Contains(m.PageID)); widgets.Each(m => { using (var widgetService = _widgetActivator.Create(m)) { widgetService.IsNeedNotifyChange = false; widgetService.DeleteWidget(m.ID); } }); _layoutHtmlService.Remove(m => allPageIds.Contains(m.PageId)); _zoneService.Remove(m => allPageIds.Contains(m.PageId)); allPages.Each(p => _widgetService.RemoveCache(p.ID)); base.RemoveRange(allPages.ToArray()); } }); }
public ActionResult Create(QueryContext context) { WidgetBase widget = null; IWidgetPartDriver widgetPartDriver = null; if (context.WidgetTemplateID.IsNotNullAndWhiteSpace()) { var template = _widgetTemplateService.Get(context.WidgetTemplateID); widget = template.ToWidget(HttpContext.RequestServices); } else if (context.WidgetID.IsNotNullAndWhiteSpace()) { var widgetBasePart = _widgetService.Get(context.WidgetID); widgetPartDriver = _widgetActivator.Create(widgetBasePart); widget = widgetPartDriver.GetWidget(widgetBasePart.ToWidgetBase()); widget.IsTemplate = false; widget.IsSystem = false; widget.Thumbnail = null; widget.RuleID = null; } if (widget == null) { return(BadRequest()); } widget.PageID = context.PageID; widget.LayoutID = context.LayoutID; widget.ZoneID = context.ZoneID; widget.RuleID = context.RuleID; if (widget.PageID.IsNotNullAndWhiteSpace()) { widget.Position = _widgetService.GetAllByPage(_pageService.Get(context.PageID)).Count(m => m.ZoneID == context.ZoneID) + 1; } else if (context.LayoutID.IsNotNullAndWhiteSpace()) { widget.Position = _widgetService.GetByLayoutId(context.LayoutID).Count(m => m.ZoneID == context.ZoneID) + 1; } SetDataSource(widget); ViewBag.ReturnUrl = context.ReturnUrl; if (widgetPartDriver != null) { widgetPartDriver.AddWidget(widget); return(RedirectToAction("Edit", new { ID = widget.ID, ReturnUrl = context.ReturnUrl })); } if (widget.FormView.IsNotNullAndWhiteSpace()) { return(View(widget.FormView, widget)); } return(View(widget)); }
public override void Remove(PageEntity item) { Remove(m => m.ParentId == item.ID); var widgets = _widgetService.Get(m => m.PageID == item.ID); widgets.Each(m => { using (var widgetService = m.CreateServiceInstance(ApplicationContext.ServiceLocator)) { widgetService.DeleteWidget(m.ID); } }); if (item.PublishDate.HasValue) { Remove(m => m.ReferencePageID == item.ID); } _dataArchivedService.Remove(CacheTrigger.PageWidgetsArchivedKey.FormatWith(item.ID)); base.Remove(item); }
public ActionResult Edit(string ID, string ReturnUrl) { var widgetBase = _widgetService.Get(ID); var widget = _widgetActivator.Create(widgetBase).GetWidget(widgetBase); SetDataSource(widget); ViewBag.ReturnUrl = ReturnUrl; if (widget.FormView.IsNotNullAndWhiteSpace()) { return(View(widget.FormView, widget)); } return(View(widget)); }
public ActionResult SelectWidget(QueryContext context) { var viewModel = new WidgetTemplateViewModel { PageID = context.PageID, LayoutID = context.LayoutID, ZoneID = context.ZoneID, RuleID = context.RuleID, ReturnUrl = context.ReturnUrl, CanPasteWidget = context.ZoneID.IsNotNullAndWhiteSpace() && _cookie.GetValue <string>(Const.CopyWidgetCookie).IsNotNullAndWhiteSpace(), WidgetTemplates = _widgetTemplateService.Get().OrderBy(m => m.Order).ToList(), PredefinedTemplates = _widgetBasePartService.Get(m => m.IsTemplate == true).ToList() }; return(View(viewModel)); }
public ActionResult Edit(string ID, string ReturnUrl) { var widgetBase = _widgetService.Get(ID); var widget = _widgetActivator.Create(widgetBase).GetWidget(widgetBase); ViewBag.ReturnUrl = ReturnUrl; var template = _widgetTemplateService.Get( m => m.PartialView == widget.PartialView && m.AssemblyName == widget.AssemblyName && m.ServiceTypeName == widget.ServiceTypeName && m.ViewModelTypeName == widget.ViewModelTypeName).FirstOrDefault(); if (template != null) { ViewBag.WidgetTemplateName = template.Title; } if (widget.FormView.IsNotNullAndWhiteSpace()) { return(View(widget.FormView, widget)); } return(View(widget)); }
public override void Remove(Expression <Func <PageEntity, bool> > filter) { var deletes = Get(filter).ToList(m => m.ID); if (deletes.Any()) { Remove(m => deletes.Any(d => d == m.ParentId)); Remove(m => deletes.Any(d => d == m.ReferencePageID)); var widgets = _widgetService.Get(m => deletes.Any(n => n == m.PageID)).ToList(); widgets.Each(m => { using (var widgetService = _widgetActivator.Create(m)) { widgetService.DeleteWidget(m.ID); } }); deletes.Each(p => _widgetService.RemoveCache(p)); base.Remove(filter); } }
public override void Remove(LayoutEntity item) { var changeTo = Get().Where(m => m.ID != item.ID).FirstOrDefault(); if (changeTo != null) { BeginTransaction(() => { _layoutHtmlService.Remove(m => m.LayoutId == item.ID && m.PageId == null); _zoneService.Remove(m => m.LayoutId == item.ID && m.PageId == null); var widgets = _widgetService.Get(m => m.LayoutID == item.ID); widgets.Each(m => { using (var widgetService = _widgetActivator.Create(m)) { widgetService.DeleteWidget(m.ID); } }); base.Remove(item); }); } }
public IEnumerable <SiteUrl> Get() { HashSet <string> distinct = new HashSet <string>(); var widgetIds = _sitemapDbContext.ArticleDetailWidget.ToList().Select(m => m.ID).ToArray(); widgetIds = widgetIds.Concat(_sitemapDbContext.ProductDetailWidget.ToList().Select(m => m.ID)).ToArray(); var pageIds = _widgetBasePartService.Get(m => widgetIds.Contains(m.ID)).Select(m => m.PageID); var pages = _pageService.Get().Where(m => !pageIds.Contains(m.ID) && m.IsPublishedPage).OrderBy(m => m.ReferencePageID).ThenByDescending(m => m.PublishDate).ToList(); foreach (var page in pages) { if (page.Url.IsNotNullAndWhiteSpace() && !distinct.Contains(page.ReferencePageID)) { distinct.Add(page.ReferencePageID); yield return(new SiteUrl { Url = Helper.Url.ToAbsolutePath(page.Url), ModifyDate = page.PublishDate ?? DateTime.Now, Changefreq = "daily", Priority = 0.5F }); } } }
public override void Remove(Expression <Func <PageEntity, bool> > filter) { var deletes = Get(filter).Select(m => m.ID); if (deletes.Any()) { Remove(m => deletes.Contains(m.ParentId)); Remove(m => deletes.Contains(m.ReferencePageID)); var widgets = _widgetService.Get(m => deletes.Contains(m.PageID)); widgets.Each(m => { using (var widgetService = _widgetActivator.Create(m)) { widgetService.IsNeedNotifyChange = false; widgetService.DeleteWidget(m.ID); } }); deletes.Each(p => _widgetService.RemoveCache(p)); base.Remove(filter); } }
public override void Remove(Rule item) { _widgetBasePartService.Get(m => m.RuleID == item.RuleID).Each(widget => { _widgetActivator.Create(widget).DeleteWidget(widget.ID); }); base.Remove(item); }
public IActionResult RuleWidgets(int Id) { ViewBag.RuleID = Id; return(PartialView("RuleWidgets", _widgetBasePartService.Get(m => m.RuleID == Id))); }