Skip to content

Commit

Permalink
- Updated the Obsidian RegistrationEntry block to better use Lava mer…
Browse files Browse the repository at this point in the history
…ge fields in Signature documents.
  • Loading branch information
ethan-sparkdevnetwork committed Aug 29, 2023
1 parent bba98db commit 6240cc8
Showing 1 changed file with 22 additions and 43 deletions.
65 changes: 22 additions & 43 deletions Rock.Blocks/Event/RegistrationEntry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -568,11 +568,11 @@ public BlockActionResult GetSignatureDocumentData( RegistrationEntryBlockArgs ar

// Prepare the merge fields.
var campusCache = campusId.HasValue ? CampusCache.Get( campusId.Value ) : null;
var ( regAttributes, regAttributeValues) = GetRegistrantAttributesFromRegistration(registrantInfo, registrationInstance.RegistrationTemplate );

var mergeFields = new Dictionary<string, object>
{
{ "Registration", new LavaSignatureRegistration( registrationInstance, groupId, args.Registrants.Count ) },
{ "Registrant", new LavaSignatureRegistrant( person, location, campusCache, groupMember, regAttributes, regAttributeValues ) }
{ "Registrant", new LavaSignatureRegistrant( person, location, campusCache, groupMember, registrantInfo, registrationInstance ) }
};

var html = ElectronicSignatureHelper.GetSignatureDocumentHtml( documentTemplate.LavaTemplate, mergeFields );
Expand Down Expand Up @@ -2377,7 +2377,7 @@ private bool UpdatePersonAttributes( Person person, History.HistoryChangeList pe
registrantInfo.PersonGuid = person.Guid;
}

private ( Dictionary<string, AttributeCache>, Dictionary<string, AttributeValueCache> ) GetRegistrantAttributesFromRegistration( ViewModels.Blocks.Event.RegistrationEntry.RegistrantInfo registrantInfo, RegistrationTemplate template )
private static ( Dictionary<string, AttributeCache>, Dictionary<string, AttributeValueCache> ) GetRegistrantAttributesFromRegistration( ViewModels.Blocks.Event.RegistrationEntry.RegistrantInfo registrantInfo, RegistrationTemplate template )
{
var attributes = new Dictionary<string, AttributeCache>();
var attributeValues = new Dictionary<string, AttributeValueCache>();
Expand Down Expand Up @@ -4159,18 +4159,22 @@ private class LavaSignatureRegistrant : LavaHasAttributes
{
public Location Address { get; }

public DateTime? AnniversaryDate { get; }

public DateTime? BirthDate { get; }

public CampusCache Campus { get; }

public DefinedValueCache ConnectionStatus { get; }

public DateTime? AnniversaryDate { get; }

public DateTime? BirthDate { get; }

public string Email { get; }

public string FirstName { get; }

public string MiddleName { get; }

public string LastName { get; }

public Gender Gender { get; }

public string GradeFormatted { get; }
Expand All @@ -4179,56 +4183,39 @@ private class LavaSignatureRegistrant : LavaHasAttributes

public int? GraduationYear { get; }

public string HomePhone { get; }

public string LastName { get; }

public DefinedValueCache MaritalStatus { get; }

public string MiddleName { get; }
public string HomePhone { get; }

public string MobilePhone { get; }

public string WorkPhone { get; }

public LavaHasAttributes Person { get; }
public Rock.Model.Person Person { get; }

public LavaHasAttributes GroupMember { get; }
public Rock.Model.GroupMember GroupMember { get; }

public LavaSignatureRegistrant( RegistrationRegistrant registrant )
: this( registrant.Person, null, null, registrant.GroupMember, registrant.Attributes, registrant.AttributeValues )
public LavaSignatureRegistrant( Person person, Location homeLocation, CampusCache campus, GroupMember groupMember, ViewModels.Blocks.Event.RegistrationEntry.RegistrantInfo registrantInfo, RegistrationInstance registrationInstance )
{
FirstName = registrant.FirstName;
LastName = registrant.LastName;
Email = registrant.Email;
var ( registrantAttributes, registrantAttributeValues) = GetRegistrantAttributesFromRegistration(registrantInfo, registrationInstance.RegistrationTemplate );

Address = registrant.Person.GetHomeLocation();

var campus = registrant.Person.GetCampus();
if ( campus != null )
{
Campus = CampusCache.Get( campus.Id );
}
}

public LavaSignatureRegistrant( Person person, Location homeLocation, CampusCache campus, GroupMember groupMember, Dictionary<string, AttributeCache> registrantAttributes, Dictionary<string, AttributeValueCache> registrantAttributeValues )
{
Address = homeLocation;
Campus = campus;
AnniversaryDate = person.AnniversaryDate;
BirthDate = person.BirthDate;
Campus = campus;
ConnectionStatus = person.ConnectionStatusValueId.HasValue ? DefinedValueCache.Get( person.ConnectionStatusValueId.Value ) : null;
Email = person.Email;
FirstName = person.FirstName;
MiddleName = person.MiddleName;
LastName = person.LastName;
Gender = person.Gender;
GradeFormatted = person.GradeFormatted;
GradeOffset = person.GradeOffset;
GraduationYear = person.GraduationYear;

// We call FormattedNumber here rather than using the property NumberFormatted because at this point NumberFormatted hasn't yet been initialized
HomePhone = PhoneNumber.FormattedNumber( "", person.GetPhoneNumber( SystemGuid.DefinedValue.PERSON_PHONE_TYPE_HOME.AsGuid() )?.Number, false );
LastName = person.LastName;
MaritalStatus = person.MaritalStatusValueId.HasValue ? DefinedValueCache.Get( person.MaritalStatusValueId.Value ) : null;
MiddleName = person.MiddleName;
MobilePhone = PhoneNumber.FormattedNumber( "", person.GetPhoneNumber( SystemGuid.DefinedValue.PERSON_PHONE_TYPE_MOBILE.AsGuid() )?.Number, false );
WorkPhone = PhoneNumber.FormattedNumber( "", person.GetPhoneNumber( SystemGuid.DefinedValue.PERSON_PHONE_TYPE_WORK.AsGuid() )?.Number, false );

Expand All @@ -4245,11 +4232,7 @@ public LavaSignatureRegistrant( Person person, Location homeLocation, CampusCach
person.LoadAttributes();
}

Person = new LavaHasAttributes
{
Attributes = person.Attributes,
AttributeValues = person.AttributeValues
};
Person = person;
}

if ( groupMember != null )
Expand All @@ -4259,11 +4242,7 @@ public LavaSignatureRegistrant( Person person, Location homeLocation, CampusCach
groupMember.LoadAttributes();
}

GroupMember = new LavaHasAttributes
{
Attributes = groupMember.Attributes,
AttributeValues = groupMember.AttributeValues
};
GroupMember = groupMember;
}
}
}
Expand Down

0 comments on commit 6240cc8

Please sign in to comment.