/// <summary> /// Binds the grid for signature document templates. /// </summary> private void BindGrid() { var queryable = new SignatureDocumentTemplateService( new RockContext() ).Queryable(); SortProperty sortProperty = gSignatureDocumentTemplate.SortProperty; if ( sortProperty != null ) { if ( sortProperty.Property == "Documents" ) { if ( sortProperty.Direction == SortDirection.Ascending ) { queryable = queryable.OrderBy( a => a.Documents.Count() ); } else { queryable = queryable.OrderByDescending( a => a.Documents.Count() ); } } queryable = queryable.Sort( sortProperty ); } else { queryable = queryable.OrderBy( a => a.Name ); } var types = new List<SignatureDocumentTemplate>(); foreach( var type in queryable ) { if ( type.IsAuthorized( Authorization.VIEW, CurrentPerson)) { types.Add( type ); } } gSignatureDocumentTemplate.DataSource = types .Select( a => new { a.Id, a.Name, a.Description, BinaryFileType = a.BinaryFileType.Name, a.ProviderTemplateKey, Documents = a.Documents.Count() } ) .ToList(); gSignatureDocumentTemplate.DataBind(); }