本文整理汇总了C#中Rock.Model.PersonService.GetByEmail方法的典型用法代码示例。如果您正苦于以下问题:C# PersonService.GetByEmail方法的具体用法?C# PersonService.GetByEmail怎么用?C# PersonService.GetByEmail使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Rock.Model.PersonService
的用法示例。
在下文中一共展示了PersonService.GetByEmail方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: btnSend_Click
protected void btnSend_Click( object sender, EventArgs e )
{
var mergeObjects = new Dictionary<string, object>();
var url = LinkedPageUrl( "ConfirmationPage" );
if ( string.IsNullOrWhiteSpace( url ) )
{
url = ResolveRockUrl( "~/ConfirmAccount" );
}
mergeObjects.Add( "ConfirmAccountUrl", RootPath + url.TrimStart( new char[] { '/' } ) );
var personDictionaries = new List<IDictionary<string, object>>();
var personService = new PersonService();
var userLoginService = new UserLoginService();
foreach ( Person person in personService.GetByEmail( tbEmail.Text ) )
{
var users = new List<IDictionary<string,object>>();
foreach ( UserLogin user in userLoginService.GetByPersonId( person.Id ) )
{
if ( user.EntityType != null )
{
var component = AuthenticationContainer.GetComponent( user.EntityType.Name );
if ( component.ServiceType == AuthenticationServiceType.Internal )
{
users.Add( user.ToDictionary() );
}
}
}
if (users.Count > 0)
{
IDictionary<string,object> personDictionary = person.ToDictionary();
personDictionary.Add("Users", users.ToArray());
personDictionaries.Add( personDictionary );
}
}
if ( personDictionaries.Count > 0 )
{
mergeObjects.Add( "Persons", personDictionaries.ToArray() );
var recipients = new Dictionary<string, Dictionary<string, object>>();
recipients.Add( tbEmail.Text, mergeObjects );
Email email = new Email( GetAttributeValue( "EmailTemplate" ) );
email.Send( recipients );
pnlEntry.Visible = false;
pnlSuccess.Visible = true;
}
else
pnlWarning.Visible = true;
}
示例2: btnSend_Click
/// <summary>
/// Handles the Click event of the btnSend 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 btnSend_Click( object sender, EventArgs e )
{
var url = LinkedPageUrl( "ConfirmationPage" );
if ( string.IsNullOrWhiteSpace( url ) )
{
url = ResolveRockUrl( "~/ConfirmAccount" );
}
var mergeObjects = GlobalAttributesCache.GetMergeFields( CurrentPerson );
mergeObjects.Add( "ConfirmAccountUrl", RootPath + url.TrimStart( new char[] { '/' } ) );
var results = new List<IDictionary<string, object>>();
var rockContext = new RockContext();
var personService = new PersonService( rockContext );
var userLoginService = new UserLoginService( rockContext );
foreach ( Person person in personService.GetByEmail( tbEmail.Text )
.Where( p => p.Users.Any()))
{
var users = new List<UserLogin>();
foreach ( UserLogin user in userLoginService.GetByPersonId( person.Id ) )
{
if ( user.EntityType != null )
{
var component = AuthenticationContainer.GetComponent( user.EntityType.Name );
if ( !component.RequiresRemoteAuthentication )
{
users.Add( user );
}
}
}
var resultsDictionary = new Dictionary<string, object>();
resultsDictionary.Add( "Person", person);
resultsDictionary.Add( "Users", users );
results.Add( resultsDictionary );
}
if ( results.Count > 0 )
{
mergeObjects.Add( "Results", results.ToArray() );
var recipients = new List<RecipientData>();
recipients.Add( new RecipientData( tbEmail.Text, mergeObjects ) );
Email.Send( GetAttributeValue( "EmailTemplate" ).AsGuid(), recipients, ResolveRockUrlIncludeRoot( "~/" ), ResolveRockUrlIncludeRoot( "~~/" ) );
pnlEntry.Visible = false;
pnlSuccess.Visible = true;
}
else
{
pnlWarning.Visible = true;
}
}
示例3: ProcessBounce
/// <summary>
/// Processes the bounce.
/// </summary>
/// <param name="email">The email.</param>
/// <param name="bounceType">Type of the bounce.</param>
/// <param name="message">The message.</param>
/// <param name="bouncedDateTime">The bounced date time.</param>
public static void ProcessBounce( string email, BounceType bounceType, string message, DateTime bouncedDateTime )
{
// currently only processing hard bounces
if ( bounceType == BounceType.HardBounce )
{
// get people who have those emails
RockContext rockContext = new RockContext();
PersonService personService = new PersonService( rockContext );
var peopleWithEmail = personService.GetByEmail( email );
foreach ( var person in peopleWithEmail )
{
person.IsEmailActive = false;
person.EmailNote = String.Format( "Email experienced a {0} on {1} ({2}).", bounceType.Humanize(), bouncedDateTime.ToShortDateString(), message );
}
rockContext.SaveChanges();
}
}
示例4: btnSend_Click
/// <summary>
/// Handles the Click event of the btnSend 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 btnSend_Click( object sender, EventArgs e )
{
var url = LinkedPageUrl( "ConfirmationPage" );
if ( string.IsNullOrWhiteSpace( url ) )
{
url = ResolveRockUrl( "~/ConfirmAccount" );
}
var mergeFields = Rock.Lava.LavaHelper.GetCommonMergeFields( this.RockPage, this.CurrentPerson );
mergeFields.Add( "ConfirmAccountUrl", RootPath + url.TrimStart( new char[] { '/' } ) );
var results = new List<IDictionary<string, object>>();
var rockContext = new RockContext();
var personService = new PersonService( rockContext );
var userLoginService = new UserLoginService( rockContext );
bool hasAccountWithPasswordResetAbility = false;
List<string> accountTypes = new List<string>();
foreach ( Person person in personService.GetByEmail( tbEmail.Text )
.Where( p => p.Users.Any()))
{
var users = new List<UserLogin>();
foreach ( UserLogin user in userLoginService.GetByPersonId( person.Id ) )
{
if ( user.EntityType != null )
{
var component = AuthenticationContainer.GetComponent( user.EntityType.Name );
if ( !component.RequiresRemoteAuthentication )
{
users.Add( user );
hasAccountWithPasswordResetAbility = true;
}
accountTypes.Add( user.EntityType.FriendlyName );
}
}
var resultsDictionary = new Dictionary<string, object>();
resultsDictionary.Add( "Person", person);
resultsDictionary.Add( "Users", users );
results.Add( resultsDictionary );
}
if ( results.Count > 0 && hasAccountWithPasswordResetAbility )
{
mergeFields.Add( "Results", results.ToArray() );
var recipients = new List<RecipientData>();
recipients.Add( new RecipientData( tbEmail.Text, mergeFields ) );
Email.Send( GetAttributeValue( "EmailTemplate" ).AsGuid(), recipients, ResolveRockUrlIncludeRoot( "~/" ), ResolveRockUrlIncludeRoot( "~~/" ), false );
pnlEntry.Visible = false;
pnlSuccess.Visible = true;
}
else if (results.Count > 0 )
{
// the person has user accounts but none of them are allowed to have their passwords reset (Facebook/Google/etc)
lWarning.Text = string.Format( @"<p>We were able to find the following accounts for this email, but
none of them are able to be reset from this website.</p> <p>Accounts:<br /> {0}</p>
<p>To create a new account with a username and password please see our <a href='{1}'>New Account</a>
page.</p>"
, string.Join( ",", accountTypes )
, ResolveRockUrl( "~/NewAccount" ) );
pnlWarning.Visible = true;
}
else
{
pnlWarning.Visible = true;
}
}
示例5: GetPerson
/// <summary>
/// Gets the person.
/// </summary>
/// <param name="rockContext">The rock context.</param>
/// <returns></returns>
private Person GetPerson( RockContext rockContext )
{
var personService = new PersonService( rockContext );
var personMatches = personService.GetByEmail( txtEmail.Text )
.Where( p =>
p.LastName.Equals( txtLastName.Text, StringComparison.OrdinalIgnoreCase ) &&
( ( p.FirstName != null && p.FirstName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) ||
( p.NickName != null && p.NickName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) ) )
.ToList();
if ( personMatches.Count() == 1 )
{
return personMatches.FirstOrDefault();
}
else
{
DefinedValueCache dvcConnectionStatus = DefinedValueCache.Read( GetAttributeValue( "ConnectionStatus" ).AsGuid() );
DefinedValueCache dvcRecordStatus = DefinedValueCache.Read( GetAttributeValue( "RecordStatus" ).AsGuid() );
Person person = new Person();
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.Email = txtEmail.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;
}
PersonService.SaveNewPerson( person, rockContext, null, false );
return personService.Get( person.Id );
}
}
示例6: FindPerson
/// <summary>
/// Finds the person if they're logged in, or by email and name. If not found, creates a new person.
/// </summary>
/// <returns></returns>
private Person FindPerson()
{
Person person;
var personService = new PersonService();
if ( CurrentPerson != null )
{
person = CurrentPerson;
}
else
{
person = personService.GetByEmail( tbEmail.Text )
.FirstOrDefault( p => p.FirstName == tbFirstName.Text && p.LastName == tbLastName.Text );
}
if ( person == null )
{
var definedValue = DefinedValueCache.Read( new Guid( GetAttributeValue( "DefaultConnectionStatus" ) ) );
person = new Person
{
FirstName = tbFirstName.Text,
LastName = tbLastName.Text,
Email = tbEmail.Text,
ConnectionStatusValueId = definedValue.Id,
};
personService.Add( person, CurrentPersonId );
personService.Save( person, CurrentPersonId );
}
return person;
}
示例7: GetPerson
/// <summary>
/// Gets the person.
/// </summary>
/// <param name="rockContext">The rock context.</param>
/// <returns></returns>
private Person GetPerson( RockContext rockContext )
{
var personService = new PersonService( rockContext );
var personMatches = personService.GetByEmail( txtEmail.Text )
.Where( p =>
p.LastName.Equals( txtLastName.Text, StringComparison.OrdinalIgnoreCase ) &&
( ( p.FirstName != null && p.FirstName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) ||
( p.NickName != null && p.NickName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) ) )
.ToList();
if ( personMatches.Count() == 1 )
{
return personMatches.FirstOrDefault();
}
else
{
Person person = new Person();
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.Email = txtEmail.Text;
person.EmailPreference = EmailPreference.EmailAllowed;
GroupService.SaveNewFamily( rockContext, person, null, false );
return personService.Get( person.Id );
}
}
示例8: 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;
int personId = ViewState["PersonId"] as int? ?? 0;
if ( personId == 0 && TargetPerson != null )
{
person = TargetPerson;
}
else
{
using ( new UnitOfWorkScope() )
{
var personService = new PersonService();
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 ) )
{
var personMatches = personService.GetByEmail( txtEmail.Text ).Where( p =>
p.LastName.Equals( txtLastName.Text, StringComparison.OrdinalIgnoreCase ) &&
( p.FirstName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ||
p.NickName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) );
if ( personMatches.Count() == 1 )
{
person = personMatches.FirstOrDefault();
}
}
if ( person == null )
{
// Create Person
person = new Person();
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.Email = txtEmail.Text;
bool displayPhone = false;
if ( bool.TryParse( GetAttributeValue( "DisplayPhone" ), out displayPhone ) && displayPhone )
{
var phone = new PhoneNumber();
phone.Number = txtPhone.Text.AsNumeric();
phone.NumberTypeValueId = DefinedValueCache.Read( new Guid( Rock.SystemGuid.DefinedValue.PERSON_PHONE_TYPE_HOME ) ).Id;
person.PhoneNumbers.Add( phone );
}
// Create Family Role
var groupMember = new GroupMember();
groupMember.Person = person;
groupMember.GroupRole = new GroupTypeRoleService().Get(new Guid( Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_ADULT ) );
// Create Family
var group = new Group();
group.Members.Add( groupMember );
group.Name = person.LastName + " Family";
group.GroupTypeId = GroupTypeCache.GetFamilyGroupType().Id;
var groupLocation = new GroupLocation();
var location = new LocationService().Get(
txtStreet.Text, string.Empty, txtCity.Text, ddlState.SelectedValue, txtZip.Text );
if ( location != null )
{
Guid addressTypeGuid = Guid.Empty;
if ( !Guid.TryParse( GetAttributeValue( "AddressType" ), out addressTypeGuid ) )
{
addressTypeGuid = new Guid( Rock.SystemGuid.DefinedValue.GROUP_LOCATION_TYPE_HOME );
}
groupLocation = new GroupLocation();
groupLocation.Location = location;
groupLocation.GroupLocationTypeValueId = DefinedValueCache.Read( addressTypeGuid ).Id;
group.GroupLocations.Add( groupLocation );
}
var groupService = new GroupService();
groupService.Add( group, CurrentPersonId );
groupService.Save( group, CurrentPersonId );
}
ViewState["PersonId"] = person != null ? person.Id : 0;
}
}
}
return person;
//.........这里部分代码省略.........
示例9: 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();
int personId = ViewState["PersonId"] as int? ?? 0;
if ( personId == 0 && TargetPerson != null )
{
person = TargetPerson;
}
else
{
var personService = new PersonService( rockContext );
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 ) )
{
var personMatches = personService.GetByEmail( txtEmail.Text )
.Where( p =>
p.LastName.Equals( txtLastName.Text, StringComparison.OrdinalIgnoreCase ) &&
( p.FirstName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ||
p.NickName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) )
.ToList();
if ( personMatches.Count() == 1 )
{
person = personMatches.FirstOrDefault();
}
}
if ( person == null )
{
// Create Person
person = new Person();
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.Email = txtEmail.Text;
person.EmailPreference = EmailPreference.EmailAllowed;
bool displayPhone = false;
if ( bool.TryParse( GetAttributeValue( "DisplayPhone" ), out displayPhone ) && displayPhone )
{
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
var familyGroup = GroupService.SaveNewFamily( rockContext, person, null, false );
if ( familyGroup != null )
{
GroupService.AddNewFamilyAddress(
rockContext,
familyGroup,
GetAttributeValue( "AddressType" ),
txtStreet.Text,
string.Empty,
txtCity.Text,
ddlState.SelectedValue,
txtZip.Text );
}
}
ViewState["PersonId"] = person != null ? person.Id : 0;
}
}
return person;
}
示例10: GetPerson
private Person GetPerson()
{
using ( new UnitOfWorkScope() )
{
var personService = new PersonService();
var personMatches = personService.GetByEmail( txtEmail.Text ).Where( p =>
p.LastName.Equals( txtLastName.Text, StringComparison.OrdinalIgnoreCase ) &&
( ( p.FirstName != null && p.FirstName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) ||
( p.NickName != null && p.NickName.Equals( txtFirstName.Text, StringComparison.OrdinalIgnoreCase ) ) ) );
if ( personMatches.Count() == 1 )
{
return personMatches.FirstOrDefault();
}
else
{
Person person = new Person();
person.FirstName = txtFirstName.Text;
person.LastName = txtLastName.Text;
person.Email = txtEmail.Text;
// Create Family Role
var groupMember = new GroupMember();
groupMember.Person = person;
groupMember.GroupRole = new GroupTypeRoleService().Get( new Guid( Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_ADULT ) );
// Create Family
var group = new Group();
group.Members.Add( groupMember );
group.Name = person.LastName + " Family";
group.GroupTypeId = GroupTypeCache.GetFamilyGroupType().Id;
// Save person/family
var groupService = new GroupService();
groupService.Add( group, CurrentPersonId );
groupService.Save( group, CurrentPersonId );
return personService.Get( person.Id );
}
}
}