public DeleteKnownRelationship ( int personId, int relatedPersonId, int relationshipRoleId ) : void | ||
personId | int | The person identifier. |
relatedPersonId | int | The related person identifier. |
relationshipRoleId | int | The relationship role identifier. |
Результат | void |
public void DeleteKnownRelationship( int personId, int relatedPersonId, int relationshipRoleId )
{
var groupMemberService = this;
var rockContext = this.Context as RockContext;
var knownRelationshipGroupType = GroupTypeCache.Read( Rock.SystemGuid.GroupType.GROUPTYPE_KNOWN_RELATIONSHIPS );
var ownerRole = knownRelationshipGroupType.Roles.FirstOrDefault( r => r.Guid.Equals( Rock.SystemGuid.GroupRole.GROUPROLE_KNOWN_RELATIONSHIPS_OWNER.AsGuid() ) );
var relationshipRole = knownRelationshipGroupType.Roles.FirstOrDefault( r => r.Id == relationshipRoleId );
if ( ownerRole == null )
{
throw new Exception( "Unable to find known relationships owner role" );
}
if ( relationshipRole == null )
{
throw new Exception( "Specified relationshipRoleId is not a known relationships role" );
}
var knownRelationshipGroup = groupMemberService.Queryable()
.Where( m =>
m.PersonId == personId &&
m.GroupRole.Guid.Equals( ownerRole.Guid ) )
.Select( m => m.Group )
.FirstOrDefault();
if ( knownRelationshipGroup == null )
{
// no group, so it doesn't exist
return;
}
// lookup the relationship to delete
var relationshipMember = groupMemberService.Queryable()
.FirstOrDefault( m =>
m.GroupId == knownRelationshipGroup.Id &&
m.PersonId == relatedPersonId &&
m.GroupRoleId == relationshipRoleId );
if ( relationshipMember != null )
{
var inverseGroupMember = groupMemberService.GetInverseRelationship( relationshipMember, true );
if ( inverseGroupMember != null )
{
groupMemberService.Delete( inverseGroupMember );
}
groupMemberService.Delete( relationshipMember );
rockContext.SaveChanges();
}
}
public void DeleteKnownRelationship( int personId, int relatedPersonId, int relationshipRoleId ) { SetProxyCreation( true ); var rockContext = this.Service.Context as RockContext; var personService = new PersonService( rockContext ); var person = personService.Get( personId ); var relatedPerson = personService.Get( relatedPersonId ); CheckCanEdit( person ); CheckCanEdit( relatedPerson ); System.Web.HttpContext.Current.Items.Add( "CurrentPerson", GetPerson() ); var groupMemberService = new GroupMemberService( rockContext ); groupMemberService.DeleteKnownRelationship( personId, relatedPersonId, relationshipRoleId ); }