Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
        private static int LoadByGuid2(Guid guid, RockContext rockContext = null)
        {
            var LayoutService = new LayoutService(rockContext);

            return(LayoutService
                   .Queryable().AsNoTracking()
                   .Where(c => c.Guid.Equals(guid))
                   .Select(c => c.Id)
                   .FirstOrDefault());
        }
Beispiel #3
0
        /// <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();
        }
Beispiel #4
0
        /// <summary>
        /// Binds the pages grid.
        /// </summary>
        protected void BindPagesGrid()
        {
            pnlPages.Visible = false;
            int siteId = PageParameter("siteId").AsInteger() ?? 0;

            if (siteId == 0)
            {
                // quit if the siteId can't be determined
                return;
            }

            hfSiteId.SetValue(siteId);
            pnlPages.Visible = true;

            LayoutService layoutService = new LayoutService();

            layoutService.RegisterLayouts(Request.MapPath("~"), SiteCache.Read(siteId), CurrentPersonId);
            var layouts = layoutService.Queryable().Where(a => a.SiteId.Equals(siteId)).Select(a => a.Id).ToList();

            var siteService = new SiteService();
            var pageId      = siteService.Get(siteId).DefaultPageId;

            var pageService = new PageService();
            var qry         = pageService.GetAllDescendents((int)pageId).AsQueryable().Where(a => layouts.Contains(a.LayoutId));

            string layoutFilter = gPagesFilter.GetUserPreference("Layout");

            if (!string.IsNullOrWhiteSpace(layoutFilter) && layoutFilter != Rock.Constants.All.Text)
            {
                qry = qry.Where(a => a.Layout.ToString() == layoutFilter);
            }

            SortProperty sortProperty = gPages.SortProperty;

            if (sortProperty != null)
            {
                qry = qry.Sort(sortProperty);
            }
            else
            {
                qry = qry.OrderBy(q => q.Id);
            }

            gPages.DataSource = qry.ToList();
            gPages.DataBind();
        }
        /// <summary>
        /// Binds the group members grid.
        /// </summary>
        protected void BindLayoutsGrid()
        {
            pnlLayouts.Visible = false;

            int siteId = PageParameter("siteId").AsInteger();

            if (siteId == 0)
            {
                // quit if the siteId can't be determined
                return;
            }

            var rockContext = new RockContext();
            var site        = SiteCache.Read(siteId, rockContext);

            if (site == null)
            {
                return;
            }

            hfSiteId.SetValue(siteId);

            pnlLayouts.Visible = true;

            // Add any missing layouts
            LayoutService.RegisterLayouts(Request.MapPath("~"), site);

            LayoutService layoutService = new LayoutService(new RockContext());
            var           qry           = layoutService.Queryable().Where(a => a.SiteId.Equals(siteId));

            SortProperty sortProperty = gLayouts.SortProperty;

            if (sortProperty != null)
            {
                gLayouts.DataSource = qry.Sort(sortProperty).ToList();
            }
            else
            {
                gLayouts.DataSource = qry.OrderBy(l => l.Name).ToList();
            }

            gLayouts.DataBind();
        }
Beispiel #6
0
        /// <summary>
        /// Binds the filter.
        /// </summary>
        private void BindFilter()
        {
            int siteId = PageParameter("siteId").AsInteger();

            if (siteId == 0)
            {
                // quit if the siteId can't be determined
                return;
            }
            LayoutService.RegisterLayouts(Request.MapPath("~"), SiteCache.Read(siteId));
            LayoutService layoutService = new LayoutService(new RockContext());
            var           layouts       = layoutService.Queryable().Where(a => a.SiteId.Equals(siteId)).ToList();

            ddlLayoutFilter.DataSource = layouts;
            ddlLayoutFilter.DataBind();
            ddlLayoutFilter.Items.Insert(0, Rock.Constants.All.ListItem);
            ddlLayoutFilter.Visible = layouts.Any();
            ddlLayoutFilter.SetValue(gPagesFilter.GetUserPreference("Layout"));
        }