/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { var rockContext = new RockContext(); var restUserRecordTypeId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_TYPE_RESTUSER.AsGuid() ).Id; var activeRecordStatusValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_STATUS_ACTIVE.AsGuid() ).Id; var queryable = new PersonService( rockContext ).Queryable() .Where( q => q.RecordTypeValueId == restUserRecordTypeId && q.RecordStatusValueId == activeRecordStatusValueId ); SortProperty sortProperty = gRestKeyList.SortProperty; if ( sortProperty != null ) { gRestKeyList.DataSource = queryable.Sort( sortProperty ).ToList(); } else { gRestKeyList.DataSource = queryable.OrderBy( q => q.LastName ).ToList(); } gRestKeyList.DataBind(); }
/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { var rockContext = new RockContext(); var recordTypeValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_TYPE_BUSINESS.AsGuid() ).Id; var queryable = new PersonService( rockContext ).Queryable() .Where( q => q.RecordTypeValueId == recordTypeValueId ); var businessName = string.Empty; bool viaSearch = false; // Use the name passed in the page parameter if given if ( !string.IsNullOrWhiteSpace( PageParameter( "SearchTerm" ) ) ) { viaSearch = true; gfBusinessFilter.Visible = false; businessName = PageParameter( "SearchTerm" ); } else { // Business Name Filter businessName = gfBusinessFilter.GetUserPreference( "Business Name" ); } if ( !string.IsNullOrWhiteSpace( businessName ) ) { queryable = queryable.Where( a => a.LastName.Contains( businessName ) ); } if ( ! viaSearch ) { var activeRecordStatusValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_STATUS_ACTIVE.AsGuid() ).Id; string activeFilterValue = gfBusinessFilter.GetUserPreference( "Active Status" ); if ( activeFilterValue == "inactive" ) { queryable = queryable.Where( b => b.RecordStatusValueId != activeRecordStatusValueId ); } else if ( activeFilterValue == "active" ) { queryable = queryable.Where( b => b.RecordStatusValueId == activeRecordStatusValueId ); } SortProperty sortProperty = gBusinessList.SortProperty; if ( sortProperty != null ) { queryable = queryable.Sort( sortProperty ); } else { queryable = queryable.OrderBy( q => q.LastName ); } } var groupMemberQuery = new GroupMemberService( rockContext ).Queryable(); var businessList = queryable.Select( b => new { Id = b.Id, b.LastName, BusinessName = b.LastName, PhoneNumber = b.PhoneNumbers.FirstOrDefault().NumberFormatted, Email = b.Email, Address = b.Members .Where( m => m.Group.GroupType.Guid.ToString() == Rock.SystemGuid.GroupType.GROUPTYPE_FAMILY ) .SelectMany( m => m.Group.GroupLocations ) .FirstOrDefault() .Location, Contacts = b.Members .Where( m => m.Group.GroupType.Guid.ToString() == Rock.SystemGuid.GroupType.GROUPTYPE_KNOWN_RELATIONSHIPS ) .SelectMany( m => m.Group.Members) .Where( p => p.GroupRole.Guid.ToString() == Rock.SystemGuid.GroupRole.GROUPROLE_KNOWN_RELATIONSHIPS_OWNER && p.PersonId != b.Id) .Select( p => p.Person.LastName + ", " + p.Person.NickName) } ); if ( viaSearch && businessList.ToList().Count == 1 ) { ShowDetailForm( businessList.ToList()[0].Id ); } else { gBusinessList.EntityTypeId = EntityTypeCache.Read<Person>().Id; gBusinessList.DataSource = businessList.ToList(); gBusinessList.DataBind(); } }
/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { var rockContext = new RockContext(); var recordTypeValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_TYPE_BUSINESS.AsGuid() ).Id; var activeRecordStatusValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_STATUS_ACTIVE.AsGuid() ).Id; int? businessRoleId = new GroupTypeRoleService( rockContext ).Queryable() .Where( r => r.Guid.Equals( new Guid( Rock.SystemGuid.GroupRole.GROUPROLE_KNOWN_RELATIONSHIPS_BUSINESS ) ) ) .Select( r => r.Id ) .FirstOrDefault(); var queryable = new PersonService( rockContext ).Queryable() .Where( q => q.RecordTypeValueId == recordTypeValueId && q.RecordStatusValueId == activeRecordStatusValueId ); // Business Name Filter var businessName = gfBusinessFilter.GetUserPreference( "Business Name" ); if ( !string.IsNullOrWhiteSpace( businessName ) ) { queryable = queryable.Where( a => a.FirstName.Contains( businessName ) ); } // Owner Filter int ownerId = 0; if ( int.TryParse( gfBusinessFilter.GetUserPreference( "Owner" ), out ownerId ) && ownerId != 0 ) { var members = queryable.SelectMany( a => a.Members ).ToList(); foreach ( var member in members ) { if ( member.GroupRoleId == businessRoleId ) { var groupMemberService = new GroupMemberService( rockContext ); var owner = groupMemberService.GetInverseRelationship( member, false, CurrentPersonAlias ); if ( owner.PersonId != ownerId ) { queryable = queryable.Where( a => a.Id != member.PersonId ); } } } } SortProperty sortProperty = gBusinessList.SortProperty; if ( sortProperty != null ) { gBusinessList.DataSource = queryable.Sort( sortProperty ).ToList(); } else { gBusinessList.DataSource = queryable.OrderBy( q => q.FirstName ).ToList(); } gBusinessList.DataBind(); }
/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { var rockContext = new RockContext(); var recordTypeValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_TYPE_BUSINESS.AsGuid() ).Id; var queryable = new PersonService( rockContext ).Queryable() .Where( q => q.RecordTypeValueId == recordTypeValueId ); // Business Name Filter var businessName = gfBusinessFilter.GetUserPreference( "Business Name" ); if ( !string.IsNullOrWhiteSpace( businessName ) ) { queryable = queryable.Where( a => a.FirstName.Contains( businessName ) ); } var activeRecordStatusValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_STATUS_ACTIVE.AsGuid() ).Id; string activeFilterValue = gfBusinessFilter.GetUserPreference( "Active Status" ); if (activeFilterValue == "inactive") { queryable = queryable.Where( b => b.RecordStatusValueId != activeRecordStatusValueId ); } else if (activeFilterValue == "active") { queryable = queryable.Where( b => b.RecordStatusValueId == activeRecordStatusValueId ); } SortProperty sortProperty = gBusinessList.SortProperty; if ( sortProperty != null ) { gBusinessList.DataSource = queryable.Sort( sortProperty ).ToList(); } else { gBusinessList.DataSource = queryable.OrderBy( q => q.FirstName ).ToList(); } gBusinessList.DataBind(); }
/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { if ( CurrentPersonAlias != null ) { var rockContext = new RockContext(); int personEntityTypeId = EntityTypeCache.Read( "Rock.Model.Person" ).Id; var personIds = new FollowingService( new RockContext() ).Queryable() .Where( f => f.EntityTypeId == personEntityTypeId && f.PersonAliasId == CurrentPersonAlias.Id ) .Select( f => f.EntityId ) .Distinct() .ToList(); var qry = new PersonService( rockContext ).Queryable() .Where( p => personIds.Contains( p.Id ) ); // Sort SortProperty sortProperty = gFollowings.SortProperty; if ( sortProperty == null ) { sortProperty = new SortProperty( new GridViewSortEventArgs( "LastName,NickName", SortDirection.Ascending ) ); } Guid homePhoneGuid = Rock.SystemGuid.DefinedValue.PERSON_PHONE_TYPE_HOME.AsGuid(); Guid cellPhoneGuid = Rock.SystemGuid.DefinedValue.PERSON_PHONE_TYPE_MOBILE.AsGuid(); Guid adultGuid = Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_ADULT.AsGuid(); Guid marriedGuid = Rock.SystemGuid.DefinedValue.PERSON_MARITAL_STATUS_MARRIED.AsGuid(); gFollowings.DataSource = qry.Sort( sortProperty ) .Select( p => new { p.Id, p.LastName, p.NickName, p.BirthDate, p.Email, HomePhone = p.PhoneNumbers .Where( n => n.NumberTypeValue.Guid.Equals(homePhoneGuid)) .Select( n => n.NumberFormatted) .FirstOrDefault(), CellPhone = p.PhoneNumbers .Where( n => n.NumberTypeValue.Guid.Equals( cellPhoneGuid ) ) .Select( n => n.NumberFormatted ) .FirstOrDefault(), SpouseName = p.Members .Where( m => p.MaritalStatusValue.Guid.Equals(marriedGuid) && m.GroupRole.Guid.Equals(adultGuid)) .SelectMany( m => m.Group.Members) .Where( m => m.PersonId != p.Id && m.GroupRole.Guid.Equals(adultGuid) && m.Person.MaritalStatusValue.Guid.Equals(marriedGuid) ) .Select( s => s.Person.NickName + " " + s.Person.LastName) .FirstOrDefault() } ).ToList(); gFollowings.DataBind(); } }