Skip to content

Instantly share code, notes, and snippets.

@PraveenMathew92
Last active March 15, 2024 17:03
Show Gist options
  • Save PraveenMathew92/97f393855710de10e1943f26331d7028 to your computer and use it in GitHub Desktop.
Save PraveenMathew92/97f393855710de10e1943f26331d7028 to your computer and use it in GitHub Desktop.
Updated Registration Template Confirmation Email
/// <summary>
/// PA - Updated Registration Template Confirmation Email to not include Additional Confirmation Details if all registrants are in wait list
/// </summary>
public override void Up()
{
// Replace the old Templates to include check for waitlist while getting the count of registrants.
Sql( @"UPDATE [RegistrationTemplate]
SET [ConfirmationEmailTemplate] = REPLACE([ConfirmationEmailTemplate],
'{% assign registrantCount = Registration.Registrants | Size %}',
'{% assign registrantCount = Registration.Registrants | Where:''OnWaitList'', false | Size %}')" );
// Enclose the AdditionalConfirmationDetails in a p tag for the old templates which originally did not have the tag.
var confirmationEmailTemplateColumn = RockMigrationHelper.NormalizeColumnCRLF( "ConfirmationEmailTemplate" );
var additionalConfirmationDetailsWithoutPTag = @"{{ RegistrationInstance.AdditionalConfirmationDetails }}
<p>";
var additionalConfirmationDetailsWithPTag = @"<p>
{{ RegistrationInstance.AdditionalConfirmationDetails }}
</p>
<p>";
Sql( $@"UPDATE [RegistrationTemplate]
SET [ConfirmationEmailTemplate] =
REPLACE({confirmationEmailTemplateColumn},
'{additionalConfirmationDetailsWithoutPTag}',
'{additionalConfirmationDetailsWithPTag}')" );
// Add the check to not send the Additional Confirmation Details if all the registrants are in waitlist.
var additionalConfirmationDetailsWithCheck = @"//- 16.4 fix
{% if registrantCount > 0 %}
<p>
{{ RegistrationInstance.AdditionalConfirmationDetails }}
</p>
{% endif %}
<p>";
Sql( $@"UPDATE [RegistrationTemplate]
SET [ConfirmationEmailTemplate] = REPLACE({confirmationEmailTemplateColumn},
'{additionalConfirmationDetailsWithPTag}',
'{additionalConfirmationDetailsWithCheck}')
WHERE {confirmationEmailTemplateColumn} NOT LIKE '%//- 16.4 fix%';
" );
// Update the WaitListTransitionEmailTemplate to include the Additional Confirmation Details if needed.
var targetColumn = RockMigrationHelper.NormalizeColumnCRLF( "WaitListTransitionEmailTemplate" );
var previousTemplate = @"<p>
If you have any questions please contact {{ RegistrationInstance.ContactPersonAlias.Person.FullName }} at {{ RegistrationInstance.ContactEmail }}.
</p>";
var newTemplate = @"//- 16.4 fix
{% if AdditionalFieldsNeeded == false and Registration.BalanceDue <= 0 %}
<p>
{{ RegistrationInstance.AdditionalConfirmationDetails }}
</p>
{% endif %}
<p>
If you have any questions please contact {{ RegistrationInstance.ContactPersonAlias.Person.FullName }} at {{ RegistrationInstance.ContactEmail }}.
</p>";
Sql( $@"UPDATE [RegistrationTemplate]
SET [WaitListTransitionEmailTemplate] =
REPLACE({targetColumn},
'{previousTemplate}',
'{newTemplate}')
WHERE {targetColumn} NOT LIKE '%//- 16.4 fix%'" );
// Add the migration for older Footer Text of WaitList Transition Email Template.
previousTemplate = @"<p>
If you have any questions please contact {{ RegistrationInstance.ContactName }} at {{ RegistrationInstance.ContactEmail }}.
</p>";
Sql( $@"UPDATE [RegistrationTemplate]
SET [WaitListTransitionEmailTemplate] =
REPLACE({targetColumn},
'{previousTemplate}',
'{newTemplate}')
WHERE {targetColumn} NOT LIKE '%//- 16.4 fix%'" );
// Fix typo in Wait List Transition Email Template.
Sql( @"UPDATE [RegistrationTemplate]
SET [WaitListTransitionEmailTemplate] = REPLACE([WaitListTransitionEmailTemplate],
'Addition information is needed in order to process this registration',
'Additional information is needed in order to process this registration')" );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment