本文整理汇总了C#中Rock.Model.GroupMemberService.GetFirstNames方法的典型用法代码示例。如果您正苦于以下问题:C# GroupMemberService.GetFirstNames方法的具体用法?C# GroupMemberService.GetFirstNames怎么用?C# GroupMemberService.GetFirstNames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.GroupMemberService
的用法示例。
在下文中一共展示了GroupMemberService.GetFirstNames方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
/// <summary>
/// Executes the specified workflow.
/// </summary>
/// <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( Model.WorkflowAction action, Object entity, out List<string> errorMessages )
{
var checkInState = GetCheckInState( entity, out errorMessages );
if (checkInState != null)
{
using ( new Rock.Data.UnitOfWorkScope() )
{
var personService = new PersonService();
var memberService = new GroupMemberService();
IQueryable<Person> people = null;
if ( checkInState.CheckIn.SearchType.Guid.Equals( new Guid( SystemGuid.DefinedValue.CHECKIN_SEARCH_TYPE_PHONE_NUMBER ) ) )
{
people = personService.GetByPhonePartial( checkInState.CheckIn.SearchValue );
}
else if ( checkInState.CheckIn.SearchType.Guid.Equals( new Guid( SystemGuid.DefinedValue.CHECKIN_SEARCH_TYPE_NAME ) ) )
{
people = personService.GetByFullName( checkInState.CheckIn.SearchValue );
}
else
{
errorMessages.Add( "Invalid Search Type" );
return false;
}
foreach ( var person in people.ToList() )
{
foreach ( var group in person.Members.Where( m => m.Group.GroupType.Guid == new Guid( SystemGuid.GroupType.GROUPTYPE_FAMILY ) ).Select( m => m.Group ).ToList() )
{
var family = checkInState.CheckIn.Families.Where( f => f.Group.Id == group.Id ).FirstOrDefault();
if ( family == null )
{
family = new CheckInFamily();
family.Group = group.Clone( false );
family.Group.LoadAttributes();
family.Caption = group.ToString();
family.SubCaption = memberService.GetFirstNames( group.Id ).ToList().AsDelimited( ", " );
checkInState.CheckIn.Families.Add( family );
}
}
}
return true;
}
}
errorMessages.Add( "Invalid Check-in State" );
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 personService = new PersonService( rockContext );
var memberService = new GroupMemberService( rockContext );
Guid familyGroupTypeGuid = SystemGuid.GroupType.GROUPTYPE_FAMILY.AsGuid();
if ( checkInState.CheckIn.SearchType.Guid.Equals( new Guid( SystemGuid.DefinedValue.CHECKIN_SEARCH_TYPE_PHONE_NUMBER ) ) )
{
string numericPhone = checkInState.CheckIn.SearchValue.AsNumeric();
var personRecordTypeId = DefinedValueCache.Read( Rock.SystemGuid.DefinedValue.PERSON_RECORD_TYPE_PERSON.AsGuid() ).Id;
// Find the families with any member who has a phone number that contains selected value
var familyQry = memberService
.Queryable().AsNoTracking()
.Where( m =>
m.Group.GroupType.Guid.Equals( familyGroupTypeGuid ) &&
m.Person.RecordTypeValueId == personRecordTypeId &&
m.Person.PhoneNumbers.Any( n => n.Number.Contains( numericPhone ) ) )
.Select( m => m.GroupId )
.Distinct();
int maxResults = GetAttributeValue( action, "MaxResults" ).AsInteger();
if ( maxResults > 0 )
{
familyQry = familyQry.Take( maxResults );
}
var familyIds = familyQry.ToList();
// Load the family members
var familyMembers = memberService
.Queryable( "Group,GroupRole,Person" ).AsNoTracking()
.Where( m => familyIds.Contains(m.GroupId) )
.ToList();
// Add each family
foreach ( int familyId in familyIds )
{
// Get each of the members for this family
var thisFamilyMembers = familyMembers
.Where( m =>
m.GroupId == familyId &&
m.Person.NickName != null )
.ToList();
if ( thisFamilyMembers.Any() )
{
var group = thisFamilyMembers
.Select( m => m.Group )
.FirstOrDefault();
var firstNames = thisFamilyMembers
.OrderBy( m => m.GroupRole.Order )
.ThenBy( m => m.Person.BirthYear )
.ThenBy( m => m.Person.BirthMonth )
.ThenBy( m => m.Person.BirthDay )
.ThenBy( m => m.Person.Gender )
.Select( m => m.Person.NickName )
.ToList();
var family = new CheckInFamily();
family.Group = group.Clone( false );
family.Caption = group.ToString();
family.SubCaption = firstNames.AsDelimited( ", " );
checkInState.CheckIn.Families.Add( family );
}
}
}
else if ( checkInState.CheckIn.SearchType.Guid.Equals( new Guid( SystemGuid.DefinedValue.CHECKIN_SEARCH_TYPE_NAME ) ) )
{
foreach ( var person in personService.GetByFullName( checkInState.CheckIn.SearchValue, false ) )
{
foreach ( var group in person.Members.Where( m => m.Group.GroupType.Guid.Equals( familyGroupTypeGuid ) ).Select( m => m.Group ).ToList() )
{
var family = checkInState.CheckIn.Families.Where( f => f.Group.Id == group.Id ).FirstOrDefault();
if ( family == null )
{
family = new CheckInFamily();
family.Group = group.Clone( false );
family.Group.LoadAttributes( rockContext );
family.Caption = group.ToString();
family.SubCaption = memberService.GetFirstNames( group.Id ).ToList().AsDelimited( ", " );
checkInState.CheckIn.Families.Add( family );
}
}
}
//.........这里部分代码省略.........
示例3: Execute
//.........这里部分代码省略.........
if ( maxResults > 0 )
{
familyIdQry = familyIdQry.Take( maxResults );
}
var familyIds = familyIdQry.ToList();
// Load the family members
var familyMembers = memberService
.Queryable( "Group,GroupRole,Person" ).AsNoTracking()
.Where( m => familyIds.Contains( m.GroupId ) )
.ToList();
// Add each family
foreach ( int familyId in familyIds )
{
// Get each of the members for this family
var familyMemberQry = familyMembers
.Where( m =>
m.GroupId == familyId &&
m.Person.NickName != null );
if ( checkInState.CheckInType != null && checkInState.CheckInType.PreventInactivePeopele && dvInactive != null )
{
familyMemberQry = familyMemberQry
.Where( m =>
m.Person.RecordStatusValueId != dvInactive.Id );
}
var thisFamilyMembers = familyMemberQry.ToList();
if ( thisFamilyMembers.Any() )
{
var group = thisFamilyMembers
.Select( m => m.Group )
.FirstOrDefault();
var firstNames = thisFamilyMembers
.OrderBy( m => m.GroupRole.Order )
.ThenBy( m => m.Person.BirthYear )
.ThenBy( m => m.Person.BirthMonth )
.ThenBy( m => m.Person.BirthDay )
.ThenBy( m => m.Person.Gender )
.Select( m => m.Person.NickName )
.ToList();
var family = new CheckInFamily();
family.Group = group.Clone( false );
family.Caption = group.ToString();
family.SubCaption = firstNames.AsDelimited( ", " );
checkInState.CheckIn.Families.Add( family );
}
}
}
else if ( checkInState.CheckIn.SearchType.Guid.Equals( new Guid( SystemGuid.DefinedValue.CHECKIN_SEARCH_TYPE_NAME ) ) )
{
var people = personService.GetByFullName( checkInState.CheckIn.SearchValue, false ).AsNoTracking();
if ( checkInState.CheckInType != null && checkInState.CheckInType.PreventInactivePeopele && dvInactive != null )
{
people = people.Where( p => p.RecordStatusValueId != dvInactive.Id );
}
foreach ( var person in people )
{
foreach ( var group in person.Members.Where( m => m.Group.GroupTypeId == familyGroupTypeId ).Select( m => m.Group ).ToList() )
{
var family = checkInState.CheckIn.Families.Where( f => f.Group.Id == group.Id ).FirstOrDefault();
if ( family == null )
{
family = new CheckInFamily();
family.Group = group.Clone( false );
family.Group.LoadAttributes( rockContext );
family.Caption = group.ToString();
if ( checkInState.CheckInType == null || !checkInState.CheckInType.PreventInactivePeopele )
{
family.SubCaption = memberService.GetFirstNames( group.Id ).ToList().AsDelimited( ", " );
}
else
{
family.SubCaption = memberService.GetFirstNames( group.Id, false, false ).ToList().AsDelimited( ", " );
}
checkInState.CheckIn.Families.Add( family );
}
}
}
}
else
{
errorMessages.Add( "Invalid Search Type" );
return false;
}
return true;
}
errorMessages.Add( "Invalid Check-in State" );
return false;
}