/// <summary> /// Handles the Delete event of the gPages control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void gPages_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); PageService pageService = new PageService( rockContext ); var pageViewService = new PageViewService(rockContext); var siteService = new SiteService(rockContext); Rock.Model.Page page = pageService.Get( new Guid( e.RowKeyValue.ToString() ) ); if ( page != null ) { string errorMessage; if ( !pageService.CanDelete( page, out errorMessage, includeSecondLvl: true ) ) { mdGridWarning.Show( errorMessage, ModalAlertType.Alert ); return; } foreach (var site in siteService.Queryable()) { if (site.DefaultPageId == page.Id) { site.DefaultPageId = null; site.DefaultPageRouteId = null; } if (site.LoginPageId == page.Id) { site.LoginPageId = null; site.LoginPageRouteId = null; } if (site.RegistrationPageId == page.Id) { site.RegistrationPageId = null; site.RegistrationPageRouteId = null; } } foreach (var pageView in pageViewService.GetByPageId(page.Id)) { pageView.Page = null; pageView.PageId = null; } pageService.Delete( page ); rockContext.SaveChanges(); PageCache.Flush( page.Id ); } BindPagesGrid(); }
/// <summary> /// Handles the Delete event of the rGrid control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs"/> instance containing the event data.</param> protected void rGrid_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); var pageService = new PageService( rockContext ); var pageViewService = new PageViewService( rockContext ); var siteService = new SiteService( rockContext ); var page = pageService.Get( e.RowKeyId ); if ( page != null ) { string errorMessage = string.Empty; if ( !pageService.CanDelete( page, out errorMessage ) ) { mdDeleteWarning.Show( errorMessage, ModalAlertType.Alert ); return; } foreach ( var site in siteService.Queryable() ) { if ( site.DefaultPageId == page.Id ) { site.DefaultPageId = null; site.DefaultPageRouteId = null; } if ( site.LoginPageId == page.Id ) { site.LoginPageId = null; site.LoginPageRouteId = null; } if ( site.RegistrationPageId == page.Id ) { site.RegistrationPageId = null; site.RegistrationPageRouteId = null; } } foreach ( var pageView in pageViewService.GetByPageId( page.Id ) ) { pageView.Page = null; pageView.PageId = null; } pageService.Delete( page ); rockContext.SaveChanges(); Rock.Web.Cache.PageCache.Flush( page.Id ); if ( _page != null ) { _page.FlushChildPages(); } } BindGrid(); }
protected void rGrid_Delete( object sender, RowEventArgs e ) { using ( new UnitOfWorkScope() ) { var pageService = new PageService(); var siteService = new SiteService(); var page = pageService.Get( (int)rGrid.DataKeys[e.RowIndex]["id"] ); if ( page != null ) { RockTransactionScope.WrapTransaction( () => { foreach ( var site in siteService.Queryable() ) { bool updateSite = false; if (site.DefaultPageId == page.Id) { site.DefaultPageId = null; site.DefaultPageRouteId = null; updateSite = true; } if (site.LoginPageId == page.Id) { site.LoginPageId = null; site.LoginPageRouteId = null; updateSite = true; } if (site.RegistrationPageId == page.Id) { site.RegistrationPageId = null; site.RegistrationPageRouteId = null; updateSite = true; } if (updateSite) { siteService.Save( site, CurrentPersonId ); } } pageService.Delete( page, CurrentPersonId ); pageService.Save( page, CurrentPersonId ); Rock.Web.Cache.PageCache.Flush( page.Id ); if ( _page != null ) _page.FlushChildPages(); } ); } } BindGrid(); }
/// <summary> /// Handles the Delete event of the gPages control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs" /> instance containing the event data.</param> protected void gPages_Delete( object sender, RowEventArgs e ) { bool canDelete = false; var rockContext = new RockContext(); PageService pageService = new PageService( rockContext ); Rock.Model.Page page = pageService.Get( new Guid( e.RowKeyValue.ToString() ) ); if ( page != null ) { string errorMessage; canDelete = pageService.CanDelete( page, out errorMessage, includeSecondLvl: true ); if ( !canDelete ) { mdGridWarning.Show( errorMessage, ModalAlertType.Alert ); return; } pageService.Delete( page ); rockContext.SaveChanges(); PageCache.Flush( page.Id ); } BindPagesGrid(); }
protected void rGrid_Delete( object sender, RowEventArgs e ) { var rockContext = new RockContext(); var pageService = new PageService( rockContext ); var pageViewService = new PageViewService( rockContext ); var siteService = new SiteService( rockContext ); var page = pageService.Get( (int)rGrid.DataKeys[e.RowIndex]["id"] ); if ( page != null ) { string errorMessage = string.Empty; if ( !pageService.CanDelete( page, out errorMessage ) ) { //errorMessage = "The page is the parent page of another page."; mdDeleteWarning.Show( errorMessage, ModalAlertType.Alert ); return; } foreach ( var site in siteService.Queryable() ) { if ( site.DefaultPageId == page.Id ) { site.DefaultPageId = null; site.DefaultPageRouteId = null; } if ( site.LoginPageId == page.Id ) { site.LoginPageId = null; site.LoginPageRouteId = null; } if ( site.RegistrationPageId == page.Id ) { site.RegistrationPageId = null; site.RegistrationPageRouteId = null; } } // TODO: Could be thousands of page views. Can we set this up as cascade? foreach( var pageView in pageViewService.GetByPageId(page.Id)) { pageViewService.Delete( pageView ); } pageService.Delete( page ); rockContext.SaveChanges(); Rock.Web.Cache.PageCache.Flush( page.Id ); if ( _page != null ) { _page.FlushChildPages(); } } BindGrid(); }