public ParticipantMailPayload(ParticipantMailType mailType, Membership membership, Person actingPerson)
        {
            Strings = new SerializableDictionary <MailPayloadString, string>();

            switch (mailType)
            {
            case ParticipantMailType.MemberAddedWelcome:
                Strings[MailPayloadString.ActingPerson]     = actingPerson.Name;
                Strings[MailPayloadString.MembershipExpiry] = membership.Expires.ToLongDateString();
                Strings[MailPayloadString.OrganizationName] = membership.Organization.Name;
                Strings[MailPayloadString.Regularship]      =
                    Participant.Localized(membership.Organization.RegularLabel, TitleVariant.Ship);

                BodyTemplate =
                    App_GlobalResources.Logic_Communications_Transmission_DefaultCommTemplates
                    .ParticipantManualAddWelcome_Body;

                SubjectTemplate =
                    App_GlobalResources.Logic_Communications_Transmission_DefaultCommTemplates
                    .ParticipantManualAddWelcome_Subject;

                break;

            default:
                throw new NotImplementedException("Unknown mailType: " + mailType.ToString());
            }
        }
        public ParticipantMailPayload(ParticipantMailType mailType, Participation participation, Person actingPerson)
        {
            Strings = new SerializableDictionary <MailPayloadString, string>();

            switch (mailType)
            {
            case ParticipantMailType.ParticipantAddedWelcome:
            case ParticipantMailType.ParticipantAddedWelcome_NoExpiry:
                Strings[MailPayloadString.ActingPerson]     = actingPerson.Name;
                Strings[MailPayloadString.MembershipExpiry] = participation.Expires.ToLongDateString();
                Strings[MailPayloadString.OrganizationName] = participation.Organization.Name;
                Strings[MailPayloadString.Regularship]      =
                    Participant.Localized(participation.Organization.RegularLabel, TitleVariant.Ship);
                Strings[MailPayloadString.ExternalUrl] = SystemSettings.ExternalUrl;

                if (mailType == ParticipantMailType.ParticipantAddedWelcome)
                {
                    BodyTemplate =
                        Resources.Logic_Communications_Transmission_DefaultCommTemplates
                        .ParticipantManualAddWelcome_Body;
                }
                else
                {
                    BodyTemplate =
                        Resources.Logic_Communications_Transmission_DefaultCommTemplates
                        .ParticipantManualAddWelcome_NoExpiry_Body;
                }

                SubjectTemplate =
                    Resources.Logic_Communications_Transmission_DefaultCommTemplates
                    .ParticipantManualAddWelcome_Subject;

                break;

            default:
                throw new NotImplementedException("Unknown mailType: " + mailType.ToString());
            }
        }