/// <summary> /// Handles the Delete event of the gSites 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 gSites_Delete(object sender, RowEventArgs e) { var rockContext = new RockContext(); SiteService siteService = new SiteService(rockContext); Site site = siteService.Get(e.RowKeyId); LayoutService layoutService = new LayoutService(rockContext); PageService pageService = new PageService(rockContext); UserLoginService userLoginService = new UserLoginService(rockContext); if (site != null) { var additionalSettings = site.AdditionalSettings.FromJsonOrNull <AdditionalSiteSettings>() ?? new AdditionalSiteSettings(); var sitePages = new List <int> { site.DefaultPageId ?? -1, site.LoginPageId ?? -1, site.RegistrationPageId ?? -1, site.PageNotFoundPageId ?? -1 }; var pageQry = pageService.Queryable("Layout") .Where(t => t.Layout.SiteId == site.Id || sitePages.Contains(t.Id)); pageService.DeleteRange(pageQry); var layoutQry = layoutService.Queryable() .Where(l => l.SiteId == site.Id); layoutService.DeleteRange(layoutQry); rockContext.SaveChanges(true); string errorMessage; var canDelete = siteService.CanDelete(site, out errorMessage, includeSecondLvl: true); if (!canDelete) { mdGridWarning.Show(errorMessage, ModalAlertType.Alert); return; } UserLogin userLogin = null; if (additionalSettings.ApiKeyId.HasValue) { userLogin = userLoginService.Get(additionalSettings.ApiKeyId.Value); } rockContext.WrapTransaction(() => { siteService.Delete(site); if (userLogin != null) { userLoginService.Delete(userLogin); } rockContext.SaveChanges(); }); } BindGrid(); }
/// <summary> /// Handles the Click event of the btnDeleteConfirm control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected void btnDeleteConfirm_Click(object sender, EventArgs e) { bool canDelete = false; var rockContext = new RockContext(); SiteService siteService = new SiteService(rockContext); Site site = siteService.Get(hfSiteId.Value.AsInteger()); LayoutService layoutService = new LayoutService(rockContext); PageService pageService = new PageService(rockContext); if (site != null) { var sitePages = new List <int> { site.DefaultPageId ?? -1, site.LoginPageId ?? -1, site.RegistrationPageId ?? -1, site.PageNotFoundPageId ?? -1 }; var pageQry = pageService.Queryable("Layout") .Where(t => t.Layout.SiteId == site.Id || sitePages.Contains(t.Id)); pageService.DeleteRange(pageQry); var layoutQry = layoutService.Queryable() .Where(l => l.SiteId == site.Id); layoutService.DeleteRange(layoutQry); rockContext.SaveChanges(true); string errorMessage; canDelete = siteService.CanDelete(site, out errorMessage, includeSecondLvl: true); if (!canDelete) { mdDeleteWarning.Show(errorMessage, ModalAlertType.Alert); return; } siteService.Delete(site); rockContext.SaveChanges(); SiteCache.Flush(site.Id); } NavigateToParentPage(); }