本文整理汇总了C#中Rock.Model.GroupMemberService.GetByGroupId方法的典型用法代码示例。如果您正苦于以下问题:C# GroupMemberService.GetByGroupId方法的具体用法?C# GroupMemberService.GetByGroupId怎么用?C# GroupMemberService.GetByGroupId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.GroupMemberService
的用法示例。
在下文中一共展示了GroupMemberService.GetByGroupId方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
/// <summary>
/// Executes the specified workflow.
/// </summary>
/// <param name="rockContext">The rock context.</param>
/// <param name="action">The workflow action.</param>
/// <param name="entity">The entity.</param>
/// <param name="errorMessages">The error messages.</param>
/// <returns></returns>
/// <exception cref="System.NotImplementedException"></exception>
public override bool Execute( RockContext rockContext, Model.WorkflowAction action, Object entity, out List<string> errorMessages )
{
var checkInState = GetCheckInState( entity, out errorMessages );
if ( checkInState != null )
{
var family = checkInState.CheckIn.Families.Where( f => f.Selected ).FirstOrDefault();
if ( family != null )
{
var service = new GroupMemberService( rockContext );
foreach ( var groupMember in service.GetByGroupId( family.Group.Id ).AsNoTracking().ToList() )
{
if ( !family.People.Any( p => p.Person.Id == groupMember.PersonId ) )
{
var person = new CheckInPerson();
person.Person = groupMember.Person.Clone( false );
person.FamilyMember = true;
family.People.Add( person );
}
}
return true;
}
else
{
errorMessages.Add( "There is not a family that is selected" );
}
return false;
}
return false;
}
示例2: Execute
/// <summary>
/// Executes the specified workflow.
/// </summary>
/// <param name="rockContext">The rock context.</param>
/// <param name="action">The workflow action.</param>
/// <param name="entity">The entity.</param>
/// <param name="errorMessages">The error messages.</param>
/// <returns></returns>
/// <exception cref="System.NotImplementedException"></exception>
public override bool Execute( RockContext rockContext, Model.WorkflowAction action, Object entity, out List<string> errorMessages )
{
var checkInState = GetCheckInState( entity, out errorMessages );
if ( checkInState != null )
{
var family = checkInState.CheckIn.CurrentFamily;
if ( family != null )
{
var service = new GroupMemberService( rockContext );
var people = service.GetByGroupId( family.Group.Id ).AsNoTracking();
if ( checkInState.CheckInType != null && checkInState.CheckInType.PreventInactivePeopele )
{
var dvInactive = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_STATUS_INACTIVE.AsGuid() );
if ( dvInactive != null )
{
people = people.Where( m => m.Person.RecordStatusValueId != dvInactive.Id );
}
}
foreach ( var groupMember in people.ToList() )
{
if ( !family.People.Any( p => p.Person.Id == groupMember.PersonId ) )
{
var person = new CheckInPerson();
person.Person = groupMember.Person.Clone( false );
person.FamilyMember = true;
family.People.Add( person );
}
}
return true;
}
else
{
errorMessages.Add( "There is not a family that is selected" );
}
return false;
}
return false;
}
示例3: DeleteExistingFamilyData
/// <summary>
/// Deletes the family's addresses, phone numbers, photos, viewed records, and people.
/// TODO: delete attendance codes for attendance data that's about to be deleted when
/// we delete the person record.
/// </summary>
/// <param name="families">The families.</param>
/// <param name="rockContext">The rock context.</param>
private void DeleteExistingFamilyData( XElement families, RockContext rockContext )
{
PersonService personService = new PersonService( rockContext );
PhoneNumberService phoneNumberService = new PhoneNumberService( rockContext );
PersonViewedService personViewedService = new PersonViewedService( rockContext );
PageViewService pageViewService = new PageViewService( rockContext );
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
PersonAliasService personAliasService = new PersonAliasService( rockContext );
PersonDuplicateService personDuplicateService = new PersonDuplicateService( rockContext );
NoteService noteService = new NoteService( rockContext );
AuthService authService = new AuthService( rockContext );
CommunicationService communicationService = new CommunicationService( rockContext );
CommunicationRecipientService communicationRecipientService = new CommunicationRecipientService( rockContext );
FinancialBatchService financialBatchService = new FinancialBatchService( rockContext );
FinancialTransactionService financialTransactionService = new FinancialTransactionService( rockContext );
PersonPreviousNameService personPreviousNameService = new PersonPreviousNameService( rockContext );
ConnectionRequestService connectionRequestService = new ConnectionRequestService( rockContext );
ConnectionRequestActivityService connectionRequestActivityService = new ConnectionRequestActivityService( rockContext );
// delete the batch data
List<int> imageIds = new List<int>();
foreach ( var batch in financialBatchService.Queryable().Where( b => b.Name.StartsWith( "SampleData" ) ) )
{
imageIds.AddRange( batch.Transactions.SelectMany( t => t.Images ).Select( i => i.BinaryFileId ).ToList() );
financialTransactionService.DeleteRange( batch.Transactions );
financialBatchService.Delete( batch );
}
// delete all transaction images
foreach ( var image in binaryFileService.GetByIds( imageIds ) )
{
binaryFileService.Delete( image );
}
foreach ( var elemFamily in families.Elements( "family" ) )
{
Guid guid = elemFamily.Attribute( "guid" ).Value.Trim().AsGuid();
GroupService groupService = new GroupService( rockContext );
Group family = groupService.Get( guid );
if ( family != null )
{
var groupMemberService = new GroupMemberService( rockContext );
var members = groupMemberService.GetByGroupId( family.Id, true );
// delete the people records
string errorMessage;
List<int> photoIds = members.Select( m => m.Person ).Where( p => p.PhotoId != null ).Select( a => (int)a.PhotoId ).ToList();
foreach ( var person in members.Select( m => m.Person ) )
{
person.GivingGroup = null;
person.GivingGroupId = null;
person.PhotoId = null;
// delete phone numbers
foreach ( var phone in phoneNumberService.GetByPersonId( person.Id ) )
{
if ( phone != null )
{
phoneNumberService.Delete( phone );
}
}
// delete communication recipient
foreach ( var recipient in communicationRecipientService.Queryable().Where( r => r.PersonAlias.PersonId == person.Id ) )
{
communicationRecipientService.Delete( recipient );
}
// delete communication
foreach ( var communication in communicationService.Queryable().Where( c => c.SenderPersonAliasId == person.PrimaryAlias.Id ) )
{
communicationService.Delete( communication );
}
// delete person viewed records
foreach ( var view in personViewedService.GetByTargetPersonId( person.Id ) )
{
personViewedService.Delete( view );
}
// delete page viewed records
foreach ( var view in pageViewService.GetByPersonId( person.Id ) )
{
pageViewService.Delete( view );
}
// delete notes created by them or on their record.
foreach ( var note in noteService.Queryable().Where ( n => n.CreatedByPersonAlias.PersonId == person.Id
|| (n.NoteType.EntityTypeId == _personEntityTypeId && n.EntityId == person.Id ) ) )
{
noteService.Delete( note );
//.........这里部分代码省略.........
示例4: GetContributionTransactions
public DataSet GetContributionTransactions( int groupId, int? personId, [FromBody]Rock.Net.RestParameters.ContributionStatementOptions options )
{
var user = CurrentUser();
if ( user == null )
{
// unable to determine user
throw new HttpResponseException( HttpStatusCode.Unauthorized );
}
if ( !new FinancialTransaction().IsAuthorized( "View", user.Person ) )
{
// user can't view FinancialTransactions
throw new HttpResponseException( HttpStatusCode.Unauthorized );
}
var qry = Get()
.Where( a => a.TransactionDateTime >= options.StartDate )
.Where( a => a.TransactionDateTime < ( options.EndDate ?? DateTime.MaxValue ) );
if ( personId.HasValue )
{
// get transactions for a specific person
qry = qry.Where( a => a.AuthorizedPersonId == personId.Value );
}
else
{
// get transactions for all the persons in the specified group that have specified that group as their GivingGroup
GroupMemberService groupMemberService = new GroupMemberService();
var personIdList = groupMemberService.GetByGroupId( groupId ).Where( a => a.Person.GivingGroupId == groupId ).Select( s => s.PersonId ).ToList();
qry = qry.Where( a => personIdList.Contains( a.AuthorizedPersonId.Value ) );
}
if ( options.AccountIds != null )
{
qry = qry.Where( a => options.AccountIds.Contains( a.TransactionDetails.FirstOrDefault().AccountId ) );
}
var selectQry = qry.Select( a => new
{
a.TransactionDateTime,
CurrencyTypeValueName = a.CurrencyTypeValue.Name,
a.Summary,
Account = a.TransactionDetails.FirstOrDefault().Account,
a.Amount
} ).OrderBy( a => a.TransactionDateTime );
DataTable dataTable = new DataTable( "contribution_transactions" );
dataTable.Columns.Add( "TransactionDateTime", typeof(DateTime) );
dataTable.Columns.Add( "CurrencyTypeValueName" );
dataTable.Columns.Add( "Summary" );
dataTable.Columns.Add( "AccountId", typeof(int) );
dataTable.Columns.Add( "AccountName" );
dataTable.Columns.Add( "Amount", typeof(decimal) );
var list = selectQry.ToList();
dataTable.BeginLoadData();
foreach ( var fieldItems in list )
{
var itemArray = new object[] {
fieldItems.TransactionDateTime,
fieldItems.CurrencyTypeValueName,
fieldItems.Summary,
fieldItems.Account.Id,
fieldItems.Account.Name,
fieldItems.Amount
};
dataTable.Rows.Add( itemArray );
}
dataTable.EndLoadData();
DataSet dataSet = new DataSet();
dataSet.Tables.Add( dataTable );
return dataSet;
}
示例5: btnDelete_Click
/// <summary>
/// Handles the Click event of the btnDelete control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
protected void btnDelete_Click( object sender, EventArgs e )
{
var familyGroupId = _family.Id;
var rockContext = new RockContext();
var familyMemberService = new GroupMemberService( rockContext );
var familyMembers = familyMemberService.GetByGroupId( familyGroupId, true );
if (familyMembers.Count() == 1)
{
var fm = familyMembers.FirstOrDefault();
// If the person's giving group id is this family, change their giving group id to null
if ( fm.Person.GivingGroupId == fm.GroupId )
{
var personService = new PersonService( rockContext );
var person = personService.Get( fm.PersonId );
var demographicChanges = new List<string>();
History.EvaluateChange( demographicChanges, "Giving Group", person.GivingGroup.Name, "" );
person.GivingGroupId = null;
HistoryService.SaveChanges( rockContext, typeof( Person ), Rock.SystemGuid.Category.HISTORY_PERSON_DEMOGRAPHIC_CHANGES.AsGuid(),
person.Id, demographicChanges );
rockContext.SaveChanges();
}
// remove person from family
var oldMemberChanges = new List<string>();
History.EvaluateChange( oldMemberChanges, "Role", fm.GroupRole.Name, string.Empty );
History.EvaluateChange( oldMemberChanges, "Family", fm.Group.Name, string.Empty );
HistoryService.SaveChanges( rockContext, typeof( Person ), Rock.SystemGuid.Category.HISTORY_PERSON_FAMILY_CHANGES.AsGuid(),
fm.Person.Id, oldMemberChanges, fm.Group.Name, typeof( Group ), fm.Group.Id );
familyMemberService.Delete( fm );
rockContext.SaveChanges();
}
var familyService = new GroupService( rockContext );
// get the family that we want to delete (if it has no members )
var family = familyService.Queryable()
.Where( g =>
g.Id == familyGroupId &&
!g.Members.Any() )
.FirstOrDefault();
if ( family != null )
{
familyService.Delete( family );
rockContext.SaveChanges();
}
Response.Redirect( string.Format( "~/Person/{0}", Person.Id ), false );
}
示例6: DeleteExistingFamilyData
/// <summary>
/// Deletes the family's addresses, phone numbers, photos, viewed records, and people.
/// TODO: delete attendance codes for attendance data that's about to be deleted when
/// we delete the person record.
/// </summary>
/// <param name="families">The families.</param>
/// <param name="rockContext">The rock context.</param>
private void DeleteExistingFamilyData( XElement families, RockContext rockContext )
{
PersonService personService = new PersonService( rockContext );
PhoneNumberService phoneNumberService = new PhoneNumberService( rockContext );
PersonViewedService personViewedService = new PersonViewedService( rockContext );
PageViewService pageViewService = new PageViewService( rockContext );
BinaryFileService binaryFileService = new BinaryFileService( rockContext );
PersonAliasService personAliasService = new PersonAliasService( rockContext );
NoteService noteService = new NoteService( rockContext );
AuthService authService = new AuthService( rockContext );
foreach ( var elemFamily in families.Elements( "family" ) )
{
Guid guid = elemFamily.Attribute( "guid" ).Value.Trim().AsGuid();
GroupService groupService = new GroupService( rockContext );
Group family = groupService.Get( guid );
if ( family != null )
{
var groupMemberService = new GroupMemberService( rockContext );
var members = groupMemberService.GetByGroupId( family.Id );
// delete the people records
string errorMessage;
List<int> photoIds = members.Select( m => m.Person ).Where( p => p.PhotoId != null ).Select( a => (int)a.PhotoId ).ToList();
foreach ( var person in members.Select( m => m.Person ) )
{
person.GivingGroup = null;
person.GivingGroupId = null;
person.PhotoId = null;
// delete phone numbers
foreach ( var phone in phoneNumberService.GetByPersonId( person.Id ) )
{
if ( phone != null )
{
phoneNumberService.Delete( phone );
}
}
// delete person viewed records
foreach ( var view in personViewedService.GetByTargetPersonId( person.Id ) )
{
personViewedService.Delete( view );
}
// delete page viewed records
foreach ( var view in pageViewService.GetByPersonId( person.Id ) )
{
pageViewService.Delete( view );
}
// delete notes created by them or on their record.
foreach ( var note in noteService.Queryable().Where ( n => n.CreatedByPersonAlias.PersonId == person.Id
|| (n.NoteType.EntityTypeId == _personEntityTypeId && n.EntityId == person.Id ) ) )
{
noteService.Delete( note );
}
//// delete any GroupMember records they have
//foreach ( var groupMember in groupMemberService.Queryable().Where( gm => gm.PersonId == person.Id ) )
//{
// groupMemberService.Delete( groupMember );
//}
//// delete any Authorization data
//foreach ( var auth in authService.Queryable().Where( a => a.PersonId == person.Id ) )
//{
// authService.Delete( auth );
//}
// delete their aliases
foreach ( var alias in personAliasService.Queryable().Where( a => a.PersonId == person.Id ) )
{
personAliasService.Delete( alias );
}
//foreach ( var relationship in person.Gro)
// Save these changes so the CanDelete passes the check...
//rockContext.ChangeTracker.DetectChanges();
rockContext.SaveChanges( disablePrePostProcessing: true );
if ( personService.CanDelete( person, out errorMessage ) )
{
personService.Delete( person );
//rockContext.ChangeTracker.DetectChanges();
//rockContext.SaveChanges( disablePrePostProcessing: true );
}
}
//rockContext.ChangeTracker.DetectChanges();
rockContext.SaveChanges( disablePrePostProcessing: true );
//.........这里部分代码省略.........
示例7: GetContributionTransactions
public DataSet GetContributionTransactions( int groupId, int? personId, [FromBody]Rock.Net.RestParameters.ContributionStatementOptions options )
{
var qry = Get()
.Where( a => a.TransactionDateTime >= options.StartDate )
.Where( a => a.TransactionDateTime < ( options.EndDate ?? DateTime.MaxValue ) );
if ( personId.HasValue )
{
// get transactions for a specific person
qry = qry.Where( a => a.AuthorizedPersonAlias.PersonId == personId.Value );
}
else
{
// get transactions for all the persons in the specified group that have specified that group as their GivingGroup
GroupMemberService groupMemberService = new GroupMemberService( (RockContext)Service.Context );
var personIdList = groupMemberService.GetByGroupId( groupId ).Where( a => a.Person.GivingGroupId == groupId ).Select( s => s.PersonId ).ToList();
qry = qry.Where( a => personIdList.Contains( a.AuthorizedPersonAlias.PersonId ) );
}
if ( options.AccountIds != null )
{
qry = qry.Where( a => options.AccountIds.Contains( a.TransactionDetails.FirstOrDefault().AccountId ) );
}
var selectQry = qry.Select( a => new
{
a.TransactionDateTime,
CurrencyTypeValueName = a.CurrencyTypeValue.Value,
a.Summary,
Details = a.TransactionDetails.Select( d => new
{
d.AccountId,
AccountName = d.Account.Name,
a.Summary,
d.Amount
} ).OrderBy( x => x.AccountName ),
} ).OrderBy( a => a.TransactionDateTime );
DataTable dataTable = new DataTable( "contribution_transactions" );
dataTable.Columns.Add( "TransactionDateTime", typeof( DateTime ) );
dataTable.Columns.Add( "CurrencyTypeValueName" );
dataTable.Columns.Add( "Summary" );
dataTable.Columns.Add( "Amount", typeof( decimal ) );
dataTable.Columns.Add( "Details", typeof( DataTable ) );
var list = selectQry.ToList();
dataTable.BeginLoadData();
foreach ( var fieldItems in list )
{
DataTable detailTable = new DataTable( "transaction_details" );
detailTable.Columns.Add( "AccountId", typeof( int ) );
detailTable.Columns.Add( "AccountName" );
detailTable.Columns.Add( "Summary" );
detailTable.Columns.Add( "Amount", typeof( decimal ) );
foreach ( var detail in fieldItems.Details )
{
var detailArray = new object[] {
detail.AccountId,
detail.AccountName,
detail.Summary,
detail.Amount
};
detailTable.Rows.Add( detailArray );
}
var itemArray = new object[] {
fieldItems.TransactionDateTime,
fieldItems.CurrencyTypeValueName,
fieldItems.Summary,
fieldItems.Details.Sum(a => a.Amount),
detailTable
};
dataTable.Rows.Add( itemArray );
}
dataTable.EndLoadData();
DataSet dataSet = new DataSet();
dataSet.Tables.Add( dataTable );
return dataSet;
}
示例8: GetContributionTransactions
public DataSet GetContributionTransactions( int groupId, int? personId, [FromBody]ContributionStatementOptions options )
{
var qry = Get().Where( a => a.TransactionDateTime >= options.StartDate );
if ( options.EndDate.HasValue )
{
qry = qry.Where( a => a.TransactionDateTime < options.EndDate.Value );
}
var transactionTypeContribution = Rock.Web.Cache.DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.TRANSACTION_TYPE_CONTRIBUTION.AsGuid() );
if ( transactionTypeContribution != null )
{
int transactionTypeContributionId = transactionTypeContribution.Id;
qry = qry.Where( a => a.TransactionTypeValueId == transactionTypeContributionId );
}
if ( personId.HasValue )
{
// get transactions for a specific person
qry = qry.Where( a => a.AuthorizedPersonAlias.PersonId == personId.Value );
}
else
{
// get transactions for all the persons in the specified group that have specified that group as their GivingGroup
GroupMemberService groupMemberService = new GroupMemberService( ( RockContext ) Service.Context );
var personIdList = groupMemberService.GetByGroupId( groupId ).Where( a => a.Person.GivingGroupId == groupId ).Select( s => s.PersonId ).ToList();
qry = qry.Where( a => personIdList.Contains( a.AuthorizedPersonAlias.PersonId ) );
}
if ( options.AccountIds != null )
{
qry = qry.Where( a => a.TransactionDetails.Any( x => options.AccountIds.Contains( x.AccountId ) ) );
}
var selectQry = qry.Select( a => new
{
a.TransactionDateTime,
CurrencyTypeValueName = a.FinancialPaymentDetail != null ? a.FinancialPaymentDetail.CurrencyTypeValue.Value : string.Empty,
a.Summary,
Details = a.TransactionDetails.Select( d => new
{
d.AccountId,
AccountName = d.Account.Name,
d.Summary,
d.Amount
} ).OrderBy( x => x.AccountName ),
} ).OrderBy( a => a.TransactionDateTime );
DataTable dataTable = new DataTable( "contribution_transactions" );
dataTable.Columns.Add( "TransactionDateTime", typeof( DateTime ) );
dataTable.Columns.Add( "CurrencyTypeValueName" );
dataTable.Columns.Add( "Summary" );
dataTable.Columns.Add( "Amount", typeof( decimal ) );
dataTable.Columns.Add( "Details", typeof( DataTable ) );
var list = selectQry.ToList();
dataTable.BeginLoadData();
foreach ( var fieldItems in list )
{
DataTable detailTable = new DataTable( "transaction_details" );
detailTable.Columns.Add( "AccountId", typeof( int ) );
detailTable.Columns.Add( "AccountName" );
detailTable.Columns.Add( "Summary" );
detailTable.Columns.Add( "Amount", typeof( decimal ) );
var transactionDetails = fieldItems.Details.ToList();
// remove any Accounts that were not included (in case there was a mix of included and not included accounts in the transaction)
if ( options.AccountIds != null )
{
transactionDetails = transactionDetails.Where( a => options.AccountIds.Contains( a.AccountId ) ).ToList();
}
foreach ( var detail in transactionDetails )
{
var detailArray = new object[] {
detail.AccountId,
detail.AccountName,
detail.Summary,
detail.Amount
};
detailTable.Rows.Add( detailArray );
}
var itemArray = new object[] {
fieldItems.TransactionDateTime,
fieldItems.CurrencyTypeValueName,
fieldItems.Summary,
transactionDetails.Sum(a => a.Amount),
detailTable
};
dataTable.Rows.Add( itemArray );
}
dataTable.EndLoadData();
DataSet dataSet = new DataSet();
//.........这里部分代码省略.........