本文整理汇总了C#中Rock.Model.PersonService.GetFamilies方法的典型用法代码示例。如果您正苦于以下问题:C# PersonService.GetFamilies方法的具体用法?C# PersonService.GetFamilies怎么用?C# PersonService.GetFamilies使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.PersonService
的用法示例。
在下文中一共展示了PersonService.GetFamilies方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnInit
/// <summary>
/// Raises the <see cref="E:System.Web.UI.Control.Init" /> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param>
protected override void OnInit( EventArgs e )
{
base.OnInit( e );
ddlTitle.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_TITLE ) ), true );
ddlSuffix.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_SUFFIX ) ), true );
rblMaritalStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_MARITAL_STATUS ) ) );
rblStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_CONNECTION_STATUS ) ) );
ddlRecordStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS ) ) );
ddlReason.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS_REASON ) ), true );
ddlGivingGroup.Items.Clear();
ddlGivingGroup.Items.Add( new ListItem( None.Text, None.IdValue ) );
if ( Person != null )
{
var personService = new PersonService();
foreach ( var family in personService.GetFamilies( Person ) )
{
ddlGivingGroup.Items.Add( new ListItem( family.Name, family.Id.ToString() ) );
}
}
}
示例2: GetPersonOrBusiness
//.........这里部分代码省略.........
.Select( g => g.Group )
.FirstOrDefault();
if ( contactKnownRelationshipGroup == null )
{
// In some cases person may not yet have a know relationship group type
contactKnownRelationshipGroup = new Group();
groupService.Add( contactKnownRelationshipGroup );
contactKnownRelationshipGroup.Name = "Known Relationship";
contactKnownRelationshipGroup.GroupTypeId = knownRelationshipGroupType.Id;
var ownerMember = new GroupMember();
ownerMember.PersonId = person.Id;
ownerMember.GroupRoleId = ownerRoleId;
contactKnownRelationshipGroup.Members.Add( ownerMember );
}
var groupMember = new GroupMember();
groupMember.PersonId = business.Id;
groupMember.GroupRoleId = businessRoleId;
contactKnownRelationshipGroup.Members.Add( groupMember );
// get the known relationship group of the business
// add the business contact as a group member of that group using the group role of GROUPROLE_KNOWN_RELATIONSHIPS_BUSINESS_CONTACT
var businessKnownRelationshipGroup = groupMemberService.Queryable()
.Where( g =>
g.GroupRole.Guid.Equals( new Guid( Rock.SystemGuid.GroupRole.GROUPROLE_KNOWN_RELATIONSHIPS_OWNER ) ) &&
g.PersonId == business.Id )
.Select( g => g.Group )
.FirstOrDefault();
if ( businessKnownRelationshipGroup == null )
{
// In some cases business may not yet have a know relationship group type
businessKnownRelationshipGroup = new Group();
groupService.Add( businessKnownRelationshipGroup );
businessKnownRelationshipGroup.Name = "Known Relationship";
businessKnownRelationshipGroup.GroupTypeId = knownRelationshipGroupType.Id;
var ownerMember = new GroupMember();
ownerMember.PersonId = business.Id;
ownerMember.GroupRoleId = ownerRoleId;
businessKnownRelationshipGroup.Members.Add( ownerMember );
}
var businessGroupMember = new GroupMember();
businessGroupMember.PersonId = person.Id;
businessGroupMember.GroupRoleId = businessContactRoleId;
businessKnownRelationshipGroup.Members.Add( businessGroupMember );
rockContext.SaveChanges();
}
}
business.LastName = txtBusinessName.Text;
business.Email = txtEmail.Text;
if ( GetAttributeValue( "DisplayPhone" ).AsBooleanOrNull() ?? false )
{
var numberTypeId = DefinedValueCache.Read( new Guid( Rock.SystemGuid.DefinedValue.PERSON_PHONE_TYPE_WORK ) ).Id;
var phone = business.PhoneNumbers.FirstOrDefault( p => p.NumberTypeValueId == numberTypeId );
if ( phone == null )
{
phone = new PhoneNumber();
business.PhoneNumbers.Add( phone );
phone.NumberTypeValueId = numberTypeId;
}
phone.CountryCode = PhoneNumber.CleanNumber( pnbPhone.CountryCode );
phone.Number = PhoneNumber.CleanNumber( pnbPhone.Number );
}
if ( familyGroup == null )
{
var groupLocationService = new GroupLocationService( rockContext );
if ( GroupLocationId.HasValue )
{
familyGroup = groupLocationService.Queryable()
.Where( gl => gl.Id == GroupLocationId.Value )
.Select( gl => gl.Group )
.FirstOrDefault();
}
else
{
familyGroup = personService.GetFamilies( business.Id ).FirstOrDefault();
}
}
rockContext.SaveChanges();
if ( familyGroup != null )
{
GroupService.AddNewGroupAddress(
rockContext,
familyGroup,
Rock.SystemGuid.DefinedValue.GROUP_LOCATION_TYPE_WORK,
acAddress.Street1, acAddress.Street2, acAddress.City, acAddress.State, acAddress.PostalCode, acAddress.Country,
false );
}
return business;
}
return person;
}
示例3: GetPerson
//.........这里部分代码省略.........
if ( create && ( !phGiveAsOption.Visible || tglGiveAsOption.Checked ) ) // If tglGiveOption is not checked, then person should not be null
{
if ( person == null )
{
// Check to see if there's only one person with same email, first name, and last name
if ( !string.IsNullOrWhiteSpace( txtEmail.Text ) &&
!string.IsNullOrWhiteSpace( txtFirstName.Text ) &&
!string.IsNullOrWhiteSpace( txtLastName.Text ) )
{
// Same logic as CreatePledge.ascx.cs
var personMatches = personService.GetByMatch( txtFirstName.Text, txtLastName.Text, txtEmail.Text );
if ( personMatches.Count() == 1 )
{
person = personMatches.FirstOrDefault();
}
else
{
person = null;
}
}
if ( person == null )
{
DefinedValueCache dvcConnectionStatus = DefinedValueCache.Read( GetAttributeValue( "ConnectionStatus" ).AsGuid() );
DefinedValueCache dvcRecordStatus = DefinedValueCache.Read( GetAttributeValue( "RecordStatus" ).AsGuid() );
// Create Person
person = new Person();
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.IsEmailActive = true;
person.EmailPreference = EmailPreference.EmailAllowed;
person.RecordTypeValueId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_TYPE_PERSON.AsGuid() ).Id;
if ( dvcConnectionStatus != null )
{
person.ConnectionStatusValueId = dvcConnectionStatus.Id;
}
if ( dvcRecordStatus != null )
{
person.RecordStatusValueId = dvcRecordStatus.Id;
}
// Create Person/Family
familyGroup = PersonService.SaveNewPerson( person, rockContext, null, false );
}
ViewState["PersonId"] = person != null ? person.Id : 0;
}
}
if ( create && person != null ) // person should never be null at this point
{
person.Email = txtEmail.Text;
if ( GetAttributeValue( "DisplayPhone" ).AsBooleanOrNull() ?? false )
{
var numberTypeId = DefinedValueCache.Read( new Guid( Rock.SystemGuid.DefinedValue.PERSON_PHONE_TYPE_HOME ) ).Id;
var phone = person.PhoneNumbers.FirstOrDefault( p => p.NumberTypeValueId == numberTypeId );
if ( phone == null )
{
phone = new PhoneNumber();
person.PhoneNumbers.Add( phone );
phone.NumberTypeValueId = numberTypeId;
}
phone.CountryCode = PhoneNumber.CleanNumber( pnbPhone.CountryCode );
phone.Number = PhoneNumber.CleanNumber( pnbPhone.Number );
}
if ( familyGroup == null )
{
var groupLocationService = new GroupLocationService( rockContext );
if ( GroupLocationId.HasValue )
{
familyGroup = groupLocationService.Queryable()
.Where( gl => gl.Id == GroupLocationId.Value )
.Select( gl => gl.Group )
.FirstOrDefault();
}
else
{
familyGroup = personService.GetFamilies( person.Id ).FirstOrDefault();
}
}
rockContext.SaveChanges();
if ( familyGroup != null )
{
GroupService.AddNewGroupAddress(
rockContext,
familyGroup,
GetAttributeValue( "AddressType" ),
acAddress.Street1, acAddress.Street2, acAddress.City, acAddress.State, acAddress.PostalCode, acAddress.Country,
true );
}
}
return person;
}
示例4: LoadPersonPreview
/// <summary>
/// Loads the person preview.
/// </summary>
/// <param name="personId">The person identifier.</param>
private void LoadPersonPreview( int? personId )
{
string previewHtmlDetails = string.Empty;
var rockContext = new RockContext();
var person = new PersonService( rockContext ).Get( personId ?? 0 );
pnlPreview.Visible = person != null;
if ( person != null )
{
lPersonName.Text = person.FullName;
var spouse = person.GetSpouse( rockContext );
lSpouseName.Text = spouse != null ? string.Format( "<strong>Spouse: </strong>{0}", spouse.FullName ) : string.Empty;
rptrAddresses.DataSource = person.GetFamilies().SelectMany( a => a.GroupLocations ).ToList();
rptrAddresses.DataBind();
}
}
示例5: OnInit
/// <summary>
/// Raises the <see cref="E:System.Web.UI.Control.Init" /> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param>
protected override void OnInit( EventArgs e )
{
base.OnInit( e );
ddlTitle.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_TITLE ) ), true );
ddlSuffix.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_SUFFIX ) ), true );
rblMaritalStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_MARITAL_STATUS ) ) );
rblStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_CONNECTION_STATUS ) ) );
ddlRecordStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS ) ) );
ddlReason.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS_REASON ) ), true );
ddlGivingGroup.Items.Clear();
ddlGivingGroup.Items.Add( new ListItem( None.Text, None.IdValue ) );
if ( Person != null )
{
var personService = new PersonService( new RockContext() );
foreach ( var family in personService.GetFamilies( Person.Id ) )
{
ddlGivingGroup.Items.Add( new ListItem( family.Name, family.Id.ToString() ) );
}
}
DateTime? gradeTransitionDate = GlobalAttributesCache.Read().GetValue( "GradeTransitionDate" ).AsDateTime();
if (gradeTransitionDate.HasValue)
{
_gradeTransitionDate = gradeTransitionDate.Value;
}
ddlGrade.Items.Clear();
ddlGrade.Items.Add( new ListItem( "", "" ) );
ddlGrade.Items.Add( new ListItem( "K", "0" ) );
ddlGrade.Items.Add( new ListItem( "1st", "1" ) );
ddlGrade.Items.Add( new ListItem( "2nd", "2" ) );
ddlGrade.Items.Add( new ListItem( "3rd", "3" ) );
ddlGrade.Items.Add( new ListItem( "4th", "4" ) );
ddlGrade.Items.Add( new ListItem( "5th", "5" ) );
ddlGrade.Items.Add( new ListItem( "6th", "6" ) );
ddlGrade.Items.Add( new ListItem( "7th", "7" ) );
ddlGrade.Items.Add( new ListItem( "8th", "8" ) );
ddlGrade.Items.Add( new ListItem( "9th", "9" ) );
ddlGrade.Items.Add( new ListItem( "10th", "10" ) );
ddlGrade.Items.Add( new ListItem( "11th", "11" ) );
ddlGrade.Items.Add( new ListItem( "12th", "12" ) );
int gradeFactorReactor = ( RockDateTime.Now < _gradeTransitionDate ) ? 12 : 13;
string script = string.Format( @"
$('#{0}').change(function(){{
if ($(this).val() != '') {{
$('#{1}').val( {2} + ( {3} - parseInt( $(this).val() ) ) );
}}
}});
$('#{1}').change(function(){{
if ($(this).val() == '') {{
$('#{0}').val('');
}} else {{
var grade = {3} - ( parseInt( $(this).val() ) - {4} );
if (grade >= 0 && grade <= 12) {{
$('#{0}').val(grade.toString());
}} else {{
$('#{0}').val('');
}}
}}
}});
", ddlGrade.ClientID, ypGraduation.ClientID, _gradeTransitionDate.Year, gradeFactorReactor, RockDateTime.Now.Year );
ScriptManager.RegisterStartupScript( ddlGrade, ddlGrade.GetType(), "grade-selection-" + BlockId.ToString(), script, true );
string smsScript = @"
$('.js-sms-number').click(function () {
if ($(this).is(':checked')) {
$('.js-sms-number').not($(this)).prop('checked', false);
}
});
";
ScriptManager.RegisterStartupScript( rContactInfo, rContactInfo.GetType(), "sms-number-" + BlockId.ToString(), smsScript, true );
}
示例6: ConfigureGroupLocationControls
/// <summary>
/// logic to setup the groups location entry panel
/// </summary>
/// <param name="group">The group.</param>
private void ConfigureGroupLocationControls( Group group )
{
var rockContext = new RockContext();
ddlMember.Items.Clear();
var groupType = GroupTypeCache.Read( group.GroupTypeId );
if ( groupType != null )
{
// only allow editing groups with single locations
if ( !groupType.AllowMultipleLocations )
{
GroupLocationPickerMode groupTypeModes = groupType.LocationSelectionMode;
if ( groupTypeModes != GroupLocationPickerMode.None )
{
// Set the location picker modes allowed based on the group type's allowed modes
LocationPickerMode modes = LocationPickerMode.None;
if ( ( groupTypeModes & GroupLocationPickerMode.Named ) == GroupLocationPickerMode.Named )
{
modes = modes | LocationPickerMode.Named;
}
if ( ( groupTypeModes & GroupLocationPickerMode.Address ) == GroupLocationPickerMode.Address )
{
modes = modes | LocationPickerMode.Address;
}
if ( ( groupTypeModes & GroupLocationPickerMode.Point ) == GroupLocationPickerMode.Point )
{
modes = modes | LocationPickerMode.Point;
}
if ( ( groupTypeModes & GroupLocationPickerMode.Polygon ) == GroupLocationPickerMode.Polygon )
{
modes = modes | LocationPickerMode.Polygon;
}
bool displayMemberTab = ( groupTypeModes & GroupLocationPickerMode.GroupMember ) == GroupLocationPickerMode.GroupMember;
bool displayOtherTab = modes != LocationPickerMode.None;
ulNav.Visible = displayOtherTab && displayMemberTab;
pnlMemberSelect.Visible = displayMemberTab;
pnlLocationSelect.Visible = displayOtherTab && !displayMemberTab;
if ( displayMemberTab )
{
var personService = new PersonService( rockContext );
Guid previousLocationType = Rock.SystemGuid.DefinedValue.GROUP_LOCATION_TYPE_PREVIOUS.AsGuid();
foreach ( GroupMember member in new GroupMemberService( rockContext ).GetByGroupId( group.Id ) )
{
foreach ( Group family in personService.GetFamilies( member.PersonId ) )
{
foreach ( GroupLocation familyGroupLocation in family.GroupLocations
.Where( l => l.IsMappedLocation && !l.GroupLocationTypeValue.Guid.Equals( previousLocationType ) ) )
{
ListItem li = new ListItem(
string.Format( "{0} {1} ({2})", member.Person.FullName, familyGroupLocation.GroupLocationTypeValue.Value, familyGroupLocation.Location.ToString() ),
string.Format( "{0}|{1}", familyGroupLocation.Location.Id, member.PersonId ) );
ddlMember.Items.Add( li );
}
}
}
}
if ( displayOtherTab )
{
locpGroupLocation.AllowedPickerModes = modes;
}
ddlLocationType.DataSource = groupType.LocationTypeValues.ToList();
ddlLocationType.DataBind();
LocationTypeTab = ( displayMemberTab && ddlMember.Items.Count > 0 ) ? MEMBER_LOCATION_TAB_TITLE : OTHER_LOCATION_TAB_TITLE;
var groupLocation = group.GroupLocations.FirstOrDefault();
if ( groupLocation != null && groupLocation.Location != null )
{
if ( displayOtherTab )
{
locpGroupLocation.CurrentPickerMode = locpGroupLocation.GetBestPickerModeForLocation( groupLocation.Location );
locpGroupLocation.MapStyleValueGuid = GetAttributeValue( "MapStyle" ).AsGuid();
if ( groupLocation.Location != null )
{
locpGroupLocation.Location = new LocationService( rockContext ).Get( groupLocation.Location.Id );
}
}
if ( displayMemberTab && ddlMember.Items.Count > 0 && groupLocation.GroupMemberPersonAliasId.HasValue )
{
LocationTypeTab = MEMBER_LOCATION_TAB_TITLE;
int? personId = new PersonAliasService( rockContext ).GetPersonId( groupLocation.GroupMemberPersonAliasId.Value );
if ( personId.HasValue )
{
//.........这里部分代码省略.........
示例7: GetGuestsForFamily
public IQueryable<GuestFamily> GetGuestsForFamily( int groupId )
{
Guid knownRelationshipGuid = new Guid( Rock.SystemGuid.GroupType.GROUPTYPE_KNOWN_RELATIONSHIPS );
Guid knownRelationshipOwner = new Guid( Rock.SystemGuid.GroupRole.GROUPROLE_KNOWN_RELATIONSHIPS_OWNER );
Guid knownRelationshipCanCheckin = new Guid( Rock.SystemGuid.GroupRole.GROUPROLE_KNOWN_RELATIONSHIPS_CAN_CHECK_IN );
RockContext rockContext = new RockContext();
GroupMemberService groupMemberService = new GroupMemberService( rockContext );
PersonService personService = new PersonService( rockContext );
var familyMembers = groupMemberService.Queryable()
.Where( f => f.GroupId == groupId )
.Select( f => f.PersonId );
var familyMembersKnownRelationshipGroups = new GroupMemberService( rockContext ).Queryable()
.Where( g => g.Group.GroupType.Guid == knownRelationshipGuid
&& g.GroupRole.Guid == knownRelationshipOwner
&& familyMembers.Contains( g.PersonId ) )
.Select( m => m.GroupId );
rockContext.Database.Log = s => System.Diagnostics.Debug.WriteLine( s );
var guests = groupMemberService.Queryable()
.Where( g => g.GroupRole.Guid == knownRelationshipCanCheckin
&& familyMembersKnownRelationshipGroups.Contains( g.GroupId ) )
.Select( g => g.PersonId )
.Distinct().ToList();
var guestFamilies = new List<GuestFamily>();
rockContext.Database.Log = null;
foreach ( var guestPersonId in guests )
{
var families = personService.GetFamilies( guestPersonId );
foreach ( var family in families )
{
if ( !guestFamilies.Select( f => f.Id ).Contains( family.Id ) )
{
GuestFamily guestFamily = new GuestFamily();
guestFamily.Id = family.Id;
guestFamily.Guid = family.Guid;
guestFamily.Name = family.Name;
guestFamily.FamilyMembers = new List<GuestFamilyMember>();
foreach ( var familyMember in family.Members )
{
GuestFamilyMember guestFamilyMember = new GuestFamilyMember();
guestFamilyMember.Id = familyMember.PersonId;
guestFamilyMember.PersonAliasId = familyMember.Person.PrimaryAliasId.Value;
guestFamilyMember.Guid = familyMember.Person.Guid;
guestFamilyMember.FirstName = familyMember.Person.NickName;
guestFamilyMember.LastName = familyMember.Person.LastName;
guestFamilyMember.PhotoUrl = familyMember.Person.PhotoUrl;
guestFamilyMember.CanCheckin = guests.Contains( familyMember.PersonId );
guestFamilyMember.Role = familyMember.GroupRole.Name;
guestFamilyMember.Age = familyMember.Person.Age;
guestFamilyMember.Gender = familyMember.Person.Gender;
guestFamily.FamilyMembers.Add( guestFamilyMember );
}
guestFamilies.Add( guestFamily );
}
}
}
return guestFamilies.AsQueryable();
}
示例8: GetFamiliesByPersonNameSearch
public IQueryable<FamilySearchResult> GetFamiliesByPersonNameSearch( string searchString, int maxResults = 20 )
{
bool reversed;
RockContext rockContext = new RockContext();
PersonService personService = new PersonService( rockContext );
Guid homeAddressGuid = Rock.SystemGuid.DefinedValue.GROUP_LOCATION_TYPE_HOME.AsGuid();
// get list of people matching the search string
IOrderedQueryable<Person> sortedPersonQry = personService
.GetByFullNameOrdered( searchString, true, false, false, out reversed );
var personResults = sortedPersonQry.AsNoTracking().ToList();
List<FamilySearchResult> familyResults = new List<FamilySearchResult>();
foreach ( var person in personResults )
{
var families = personService.GetFamilies( person.Id )
.Select( f => new FamilySearchResult
{
Id = f.Id,
Name = f.Name,
FamilyMembers = f.Members.ToList(),
HomeLocation = f.GroupLocations
.Where( l => l.GroupLocationTypeValue.Guid == homeAddressGuid )
.OrderByDescending( l => l.IsMailingLocation )
.Select( l => l.Location )
.FirstOrDefault(),
MainPhone = f.Members
.OrderBy( m => m.GroupRole.Order )
.ThenBy( m => m.Person.Gender )
.FirstOrDefault()
.Person.PhoneNumbers.OrderBy( p => p.NumberTypeValue.Order ).FirstOrDefault()
} )
.ToList();
foreach ( var family in families )
{
familyResults.Add( family );
}
}
return familyResults.DistinctBy( f => f.Id ).AsQueryable();
}
示例9: gLocations_ShowEdit
/// <summary>
/// Gs the locations_ show edit.
/// </summary>
/// <param name="locationGuid">The location unique identifier.</param>
protected void gLocations_ShowEdit( Guid locationGuid )
{
var rockContext = new RockContext();
ddlMember.Items.Clear();
int? groupTypeId = ddlGroupType.SelectedValueAsId();
if ( groupTypeId.HasValue )
{
var groupType = GroupTypeCache.Read( groupTypeId.Value );
if ( groupType != null )
{
GroupLocationPickerMode groupTypeModes = groupType.LocationSelectionMode;
if ( groupTypeModes != GroupLocationPickerMode.None )
{
// Set the location picker modes allowed based on the group type's allowed modes
LocationPickerMode modes = LocationPickerMode.None;
if ( ( groupTypeModes & GroupLocationPickerMode.Named ) == GroupLocationPickerMode.Named )
{
modes = modes | LocationPickerMode.Named;
}
if ( ( groupTypeModes & GroupLocationPickerMode.Address ) == GroupLocationPickerMode.Address )
{
modes = modes | LocationPickerMode.Address;
}
if ( ( groupTypeModes & GroupLocationPickerMode.Point ) == GroupLocationPickerMode.Point )
{
modes = modes | LocationPickerMode.Point;
}
if ( ( groupTypeModes & GroupLocationPickerMode.Polygon ) == GroupLocationPickerMode.Polygon )
{
modes = modes | LocationPickerMode.Polygon;
}
bool displayMemberTab = ( groupTypeModes & GroupLocationPickerMode.GroupMember ) == GroupLocationPickerMode.GroupMember;
bool displayOtherTab = modes != LocationPickerMode.None;
ulNav.Visible = displayOtherTab && displayMemberTab;
pnlMemberSelect.Visible = displayMemberTab;
pnlLocationSelect.Visible = displayOtherTab && !displayMemberTab;
if ( displayMemberTab )
{
int groupId = hfGroupId.ValueAsInt();
if ( groupId != 0 )
{
var personService = new PersonService( rockContext );
Guid previousLocationType = Rock.SystemGuid.DefinedValue.GROUP_LOCATION_TYPE_PREVIOUS.AsGuid();
foreach ( GroupMember member in new GroupMemberService( rockContext ).GetByGroupId( groupId ) )
{
foreach ( Group family in personService.GetFamilies( member.PersonId ) )
{
foreach ( GroupLocation familyGroupLocation in family.GroupLocations
.Where( l => l.IsMappedLocation && !l.GroupLocationTypeValue.Guid.Equals( previousLocationType ) ) )
{
ListItem li = new ListItem(
string.Format( "{0} {1} ({2})", member.Person.FullName, familyGroupLocation.GroupLocationTypeValue.Name, familyGroupLocation.Location.ToString() ),
string.Format( "{0}|{1}", familyGroupLocation.Location.Id, member.PersonId ) );
ddlMember.Items.Add( li );
}
}
}
}
}
if ( displayOtherTab )
{
locpGroupLocation.AllowedPickerModes = modes;
}
ddlLocationType.DataSource = groupType.LocationTypeValues.ToList();
ddlLocationType.DataBind();
var groupLocation = GroupLocationsState.FirstOrDefault( l => l.Guid.Equals( locationGuid ) );
if ( groupLocation != null && groupLocation.Location != null )
{
if ( displayOtherTab )
{
locpGroupLocation.CurrentPickerMode = locpGroupLocation.GetBestPickerModeForLocation( groupLocation.Location );
locpGroupLocation.MapStyleValueGuid = GetAttributeValue( "MapStyle" ).AsGuid();
if ( groupLocation.Location != null )
{
locpGroupLocation.Location = new LocationService( rockContext ).Get( groupLocation.Location.Id );
}
}
if ( displayMemberTab && ddlMember.Items.Count > 0 && groupLocation.GroupMemberPersonId.HasValue )
{
ddlMember.SetValue( string.Format( "{0}|{1}", groupLocation.LocationId, groupLocation.GroupMemberPersonId ) );
LocationTypeTab = MEMBER_LOCATION_TAB_TITLE;
//.........这里部分代码省略.........
示例10: OnInit
/// <summary>
/// Raises the <see cref="E:System.Web.UI.Control.Init" /> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param>
protected override void OnInit( EventArgs e )
{
base.OnInit( e );
ddlTitle.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_TITLE ) ), true );
ddlSuffix.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_SUFFIX ) ), true );
ddlMaritalStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_MARITAL_STATUS ) ), true );
ddlConnectionStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_CONNECTION_STATUS ) ), true );
ddlRecordStatus.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS ) ) );
ddlReason.BindToDefinedType( DefinedTypeCache.Read( new Guid( Rock.SystemGuid.DefinedType.PERSON_RECORD_STATUS_REASON ) ), true );
ddlGivingGroup.Items.Clear();
ddlGivingGroup.Items.Add( new ListItem( None.Text, None.IdValue ) );
if ( Person != null )
{
var personService = new PersonService( new RockContext() );
foreach ( var family in personService.GetFamilies( Person.Id ).Select( a => new { a.Name, a.Id, a.Members } ) )
{
string familyNameWithFirstNames = GetFamilyNameWithFirstNames( family.Name, family.Members );
ddlGivingGroup.Items.Add( new ListItem( familyNameWithFirstNames, family.Id.ToString() ) );
}
}
ScriptManager.RegisterStartupScript( ddlGradePicker, ddlGradePicker.GetType(), "grade-selection-" + BlockId.ToString(), ddlGradePicker.GetJavascriptForYearPicker( ypGraduation ), true );
string smsScript = @"
$('.js-sms-number').click(function () {
if ($(this).is(':checked')) {
$('.js-sms-number').not($(this)).prop('checked', false);
}
});
";
btnSave.Visible = IsUserAuthorized( Rock.Security.Authorization.EDIT );
ScriptManager.RegisterStartupScript( rContactInfo, rContactInfo.GetType(), "sms-number-" + BlockId.ToString(), smsScript, true );
grdPreviousNames.Actions.ShowAdd = true;
grdPreviousNames.Actions.AddClick += grdPreviousNames_AddClick;
}
示例11: btnSave_Click
//.........这里部分代码省略.........
var personPreviousNameService = new PersonPreviousNameService( rockContext );
var databasePreviousNames = personPreviousNameService.Queryable().Where( a => a.PersonAlias.PersonId == person.Id ).ToList();
foreach ( var deletedPreviousName in databasePreviousNames.Where( a => !PersonPreviousNamesState.Any( p => p.Guid == a.Guid ) ) )
{
personPreviousNameService.Delete( deletedPreviousName );
History.EvaluateChange(
changes,
"Previous Name",
deletedPreviousName.ToString(),
string.Empty );
}
foreach ( var addedPreviousName in PersonPreviousNamesState.Where( a => !databasePreviousNames.Any( d => d.Guid == a.Guid ) ) )
{
addedPreviousName.PersonAliasId = person.PrimaryAliasId.Value;
personPreviousNameService.Add( addedPreviousName );
History.EvaluateChange(
changes,
"Previous Name",
string.Empty,
addedPreviousName.ToString() );
}
if ( person.IsValid )
{
if ( rockContext.SaveChanges() > 0 )
{
if ( changes.Any() )
{
HistoryService.SaveChanges(
rockContext,
typeof( Person ),
Rock.SystemGuid.Category.HISTORY_PERSON_DEMOGRAPHIC_CHANGES.AsGuid(),
Person.Id,
changes );
}
if ( orphanedPhotoId.HasValue )
{
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
var binaryFile = binaryFileService.Get( orphanedPhotoId.Value );
if ( binaryFile != null )
{
string errorMessage;
if ( binaryFileService.CanDelete( binaryFile, out errorMessage ) )
{
binaryFileService.Delete( binaryFile );
rockContext.SaveChanges();
}
}
}
// if they used the ImageEditor, and cropped it, the uncropped file is still in BinaryFile. So clean it up
if ( imgPhoto.CropBinaryFileId.HasValue )
{
if ( imgPhoto.CropBinaryFileId != person.PhotoId )
{
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
var binaryFile = binaryFileService.Get( imgPhoto.CropBinaryFileId.Value );
if ( binaryFile != null && binaryFile.IsTemporary )
{
string errorMessage;
if ( binaryFileService.CanDelete( binaryFile, out errorMessage ) )
{
binaryFileService.Delete( binaryFile );
rockContext.SaveChanges();
}
}
}
}
// If the person's record status was changed to or from inactive,
// we need to check if any of their families need to be activated or inactivated.
if ( recordStatusChangedToOrFromInactive )
{
foreach ( var family in personService.GetFamilies( person.Id ) )
{
// Are there any more members of the family who are NOT inactive?
// If not, mark the whole family inactive.
if ( !family.Members.Where( m => m.Person.RecordStatusValueId != recordStatusInactiveId ).Any() )
{
family.IsActive = false;
}
else
{
family.IsActive = true;
}
}
rockContext.SaveChanges();
}
}
Response.Redirect( string.Format( "~/Person/{0}", Person.Id ), false );
}
} );
}
}
示例12: GetPerson
/// <summary>
/// Gets the person.
/// </summary>
/// <param name="create">if set to <c>true</c> [create].</param>
/// <returns></returns>
private Person GetPerson( bool create )
{
Person person = null;
var rockContext = new RockContext();
var personService = new PersonService( rockContext );
Group familyGroup = null;
int personId = ViewState["PersonId"] as int? ?? 0;
if ( personId == 0 && TargetPerson != null )
{
person = TargetPerson;
}
else
{
if ( personId != 0 )
{
person = personService.Get( personId );
}
if ( person == null && create )
{
// Check to see if there's only one person with same email, first name, and last name
if ( !string.IsNullOrWhiteSpace( txtEmail.Text ) &&
!string.IsNullOrWhiteSpace( txtFirstName.Text ) &&
!string.IsNullOrWhiteSpace( txtLastName.Text ) )
{
// Same logic as CreatePledge.ascx.cs
var personMatches = personService.GetByMatch( txtFirstName.Text, txtLastName.Text, txtEmail.Text );
if ( personMatches.Count() == 1 )
{
person = personMatches.FirstOrDefault();
}
else
{
person = null;
}
}
if ( person == null )
{
// Create Person
person = new Person();
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.Email = txtEmail.Text;
person.EmailPreference = EmailPreference.EmailAllowed;
if ( GetAttributeValue( "DisplayPhone" ).AsBooleanOrNull() ?? false )
{
var phone = new PhoneNumber();
phone.CountryCode = PhoneNumber.CleanNumber( pnbPhone.CountryCode );
phone.Number = PhoneNumber.CleanNumber( pnbPhone.Number );
phone.NumberTypeValueId = DefinedValueCache.Read( new Guid( Rock.SystemGuid.DefinedValue.PERSON_PHONE_TYPE_HOME ) ).Id;
person.PhoneNumbers.Add( phone );
}
// Create Family
familyGroup = GroupService.SaveNewFamily( rockContext, person, null, false );
}
ViewState["PersonId"] = person != null ? person.Id : 0;
}
}
if ( create && person != null ) // person should never be null at this point
{
if ( familyGroup == null )
{
var groupLocationService = new GroupLocationService( rockContext );
if ( GroupLocationId.HasValue )
{
familyGroup = groupLocationService.Queryable()
.Where( gl => gl.Id == GroupLocationId.Value )
.Select( gl => gl.Group )
.FirstOrDefault();
}
else
{
familyGroup = personService.GetFamilies( person.Id ).FirstOrDefault();
}
}
if ( familyGroup != null )
{
GroupService.AddNewFamilyAddress(
rockContext,
familyGroup,
GetAttributeValue( "AddressType" ),
acAddress.Street1, acAddress.Street2, acAddress.City, acAddress.State, acAddress.PostalCode, acAddress.Country,
true );
}
}
return person;
//.........这里部分代码省略.........