/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { var htmlContentService = new HtmlContentService(); var htmlContent = htmlContentService.Queryable(); string pageName = ""; string siteName = ""; var htmlList = new List <HtmlApproval>(); foreach (var content in htmlContent) { content.Block.LoadAttributes(); var blah = content.Block.GetAttributeValue("RequireApproval"); if (!string.IsNullOrEmpty(blah) && blah.ToLower() == "true") { var pageService = new PageService(); if (content.Block.PageId != null) { var page = pageService.Get((int)content.Block.PageId); if (page != null) { pageName = page.InternalName; while (page.ParentPageId != null) { page = pageService.Get((int)page.ParentPageId); } var siteService = new SiteService(); siteName = siteService.GetByDefaultPageId(page.Id).Select(s => s.Name).FirstOrDefault(); } } var htmlApprovalClass = new HtmlApproval(); htmlApprovalClass.SiteName = siteName; htmlApprovalClass.PageName = pageName; htmlApprovalClass.Block = content.Block; htmlApprovalClass.BlockId = content.BlockId; htmlApprovalClass.Content = content.Content; htmlApprovalClass.Id = content.Id; htmlApprovalClass.IsApproved = content.IsApproved; htmlApprovalClass.ApprovedByPerson = content.ApprovedByPerson; htmlApprovalClass.ApprovedByPersonId = content.ApprovedByPersonId; htmlApprovalClass.ApprovedDateTime = content.ApprovedDateTime; htmlList.Add(htmlApprovalClass); } } // Filter by Site if (ddlSiteFilter.SelectedIndex > 0) { if (ddlSiteFilter.SelectedValue.ToLower() != "all") { htmlList = htmlList.Where(h => h.SiteName == ddlSiteFilter.SelectedValue).ToList(); } } // Filter by approved/unapproved if (ddlApprovedFilter.SelectedIndex > -1) { if (ddlApprovedFilter.SelectedValue.ToLower() == "unapproved") { htmlList = htmlList.Where(a => a.IsApproved == false).ToList(); } else if (ddlApprovedFilter.SelectedValue.ToLower() == "approved") { htmlList = htmlList.Where(a => a.IsApproved == true).ToList(); } } // Filter by the person that approved the content if (_canApprove) { int personId = 0; if (int.TryParse(gContentListFilter.GetUserPreference("Approved By"), out personId) && personId != 0) { htmlList = htmlList.Where(a => a.ApprovedByPersonId.HasValue && a.ApprovedByPersonId.Value == personId).ToList(); } } SortProperty sortProperty = gContentList.SortProperty; if (sortProperty != null) { gContentList.DataSource = htmlList.AsQueryable().Sort(sortProperty).ToList(); } else { gContentList.DataSource = htmlList.OrderBy(h => h.Id).ToList(); } gContentList.DataBind(); }
/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { var rockContext = new RockContext(); var htmlContentService = new HtmlContentService( rockContext ); var htmlContent = htmlContentService.Queryable(); string pageName = ""; string siteName = ""; var htmlList = new List<HtmlApproval>(); foreach ( var content in htmlContent ) { content.Block.LoadAttributes(); var blah = content.Block.GetAttributeValue( "RequireApproval" ); if ( !string.IsNullOrEmpty( blah ) && blah.ToLower() == "true" ) { var pageService = new PageService( rockContext ); if ( content.Block.PageId != null ) { var page = pageService.Get( (int)content.Block.PageId ); if ( page != null ) { pageName = page.InternalName; while ( page.ParentPageId != null ) { page = pageService.Get( (int)page.ParentPageId ); } var siteService = new SiteService( rockContext ); siteName = siteService.GetByDefaultPageId( page.Id ).Select( s => s.Name ).FirstOrDefault(); } } var htmlApprovalClass = new HtmlApproval(); htmlApprovalClass.SiteName = siteName; htmlApprovalClass.PageName = pageName; htmlApprovalClass.Block = content.Block; htmlApprovalClass.BlockId = content.BlockId; htmlApprovalClass.Content = content.Content; htmlApprovalClass.Id = content.Id; htmlApprovalClass.IsApproved = content.IsApproved; htmlApprovalClass.ApprovedByPerson = content.ApprovedByPerson; htmlApprovalClass.ApprovedByPersonId = content.ApprovedByPersonId; htmlApprovalClass.ApprovedDateTime = content.ApprovedDateTime; htmlList.Add( htmlApprovalClass ); } } // Filter by Site if ( ddlSiteFilter.SelectedIndex > 0 ) { if ( ddlSiteFilter.SelectedValue.ToLower() != "all" ) { htmlList = htmlList.Where( h => h.SiteName == ddlSiteFilter.SelectedValue ).ToList(); } } // Filter by approved/unapproved if ( ddlApprovedFilter.SelectedIndex > -1 ) { if ( ddlApprovedFilter.SelectedValue.ToLower() == "unapproved" ) { htmlList = htmlList.Where( a => a.IsApproved == false ).ToList(); } else if ( ddlApprovedFilter.SelectedValue.ToLower() == "approved" ) { htmlList = htmlList.Where( a => a.IsApproved == true ).ToList(); } } // Filter by the person that approved the content if ( _canApprove ) { int personId = 0; if ( int.TryParse( gContentListFilter.GetUserPreference( "Approved By" ), out personId ) && personId != 0 ) { htmlList = htmlList.Where( a => a.ApprovedByPersonId.HasValue && a.ApprovedByPersonId.Value == personId ).ToList(); } } SortProperty sortProperty = gContentList.SortProperty; if ( sortProperty != null ) { gContentList.DataSource = htmlList.AsQueryable().Sort( sortProperty ).ToList(); } else { gContentList.DataSource = htmlList.OrderBy( h => h.Id ).ToList(); } gContentList.DataBind(); }