예제 #1
0
        private void SendEmailToMember(GroupMember member, Group group, KeyValuePair <int, List <DateTime> > occGroup)
        {
            var email = staffEmail;

            if (member.IsNotNull())
            {
                email = member.Person.Email;
            }

            if (email.IsNotNullOrWhiteSpace())
            {
                groupsNotified.Add(group.Id);

                var mergeObjects = Rock.Lava.LavaHelper.GetCommonMergeFields(null, member.IsNotNull() ? member.Person : null);
                mergeObjects.Add("Person", member.IsNotNull() ? member.Person : null);
                mergeObjects.Add("Group", group);
                mergeObjects.Add("Occurrence", occGroup.Value.Max());

                var recipients = new List <RockEmailMessageRecipient>();
                recipients.Add(RockEmailMessageRecipient.CreateAnonymous(email, mergeObjects));

                var emailMessage = new RockEmailMessage(systemEmailGuid);
                emailMessage.SetRecipients(recipients);
                var errors = new List <string>();
                emailMessage.Send(out errors);

                if (errors.Any())
                {
                    errorCount += errors.Count;
                    errorMessages.AddRange(errors);
                }
                else
                {
                    attendanceRemindersSent++;
                }
            }
            else
            {
                errorCount += 1;
                errorMessages.Add(string.Format("No email specified for group {0} and no fallback email provided.", group.Id));
            }
        }