Ejemplo n.º 1
0
        // ReSharper disable once UnusedParameter.Local
        private void SendPrimaryContactReminderEmail(Models.Crossroads.Events.Event evt, string rooms, string token, string actionText)
        {
            try
            {
                var mergeData = new Dictionary <string, object>
                {
                    { "Event_ID", evt.EventId },
                    { "Event_Title", evt.name },
                    { "Event_Start_Date", evt.StartDate.ToShortDateString() },
                    { "Event_Start_Time", evt.StartDate.ToShortTimeString() },
                    { "Room_Name", rooms },
                    { "Base_Url", _configurationWrapper.GetConfigValue("BaseMPUrl") },
                    { "Action_Needed", actionText }
                };

                var defaultContact = _contactService.GetContactById(AppSetting("DefaultContactEmailId"));
                var comm           = _communicationService.GetTemplateAsCommunication(
                    AppSetting("EventPrimaryContactReminderTemplateId"),
                    defaultContact.Contact_ID,
                    defaultContact.Email_Address,
                    evt.PrimaryContactId,
                    evt.PrimaryContactEmailAddress,
                    evt.PrimaryContactId,
                    evt.PrimaryContactEmailAddress,
                    mergeData);
                _communicationService.SendMessage(comm);
            }
            catch (Exception ex)
            {
                _logger.Error("Error sending Event Reminder email.", ex);
            }
        }
Ejemplo n.º 2
0
 private bool RespondedOnWeekend(Models.Crossroads.Events.Event evnt, MpGroupParticipant gm)
 {
     // this person did not respond, they are a potential contact so far
     // now determine if this event is a weekend event...
     if (evnt.StartDate.IsWeekend())
     {
         // first look for other responses on the same day...
         if (!SearchForResponsesByParticipantAndDate(gm.ParticipantId, evnt.StartDate.ToMinistryPlatformSearchFormat()))
         {
             return(SearchForResponsesByParticipantAndDate(gm.ParticipantId, evnt.StartDate.DayOfWeek == DayOfWeek.Saturday ? evnt.StartDate.AddDays(1).ToMinistryPlatformSearchFormat() : evnt.StartDate.AddDays(-1).ToMinistryPlatformSearchFormat()));
         }
         return(true);
     }
     return(false);
 }
Ejemplo n.º 3
0
        private void SendEventReminderEmail(Models.Crossroads.Events.Event evt, Participant participant, MpEvent childcareEvent, IList <Participant> children, string token)
        {
            try
            {
                var mergeData = new Dictionary <string, object>
                {
                    { "Nickname", participant.Nickname },
                    { "Event_Title", evt.name },
                    { "Event_Start_Date", evt.StartDate.ToShortDateString() },
                    { "Event_Start_Time", evt.StartDate.ToShortTimeString() },
                    { "cmsChildcareEventReminder", string.Empty },
                    { "Childcare_Children", string.Empty },
                    { "Childcare_Contact", string.Empty } // Set these three parameters no matter what...
                };

                if (children.Any())
                {
                    // determine if any of the children are related to the participant
                    var mine = MyChildrenParticipants(participant.ContactId, children, token);
                    // build the HTML for the [Childcare] data
                    if (mine.Any())
                    {
                        mergeData["cmsChildcareEventReminder"] = _contentBlockService["cmsChildcareEventReminder"].Content;
                        var childcareString = ChildcareData(mine);
                        mergeData["Childcare_Children"] = childcareString;
                        mergeData["Childcare_Contact"]  = new HtmlElement("span", "If you need to cancel, please email " + childcareEvent.PrimaryContact.EmailAddress).Build();
                    }
                }
                var defaultContact = _contactService.GetContactById(AppSetting("DefaultContactEmailId"));
                var comm           = _communicationService.GetTemplateAsCommunication(
                    AppSetting("EventReminderTemplateId"),
                    defaultContact.Contact_ID,
                    defaultContact.Email_Address,
                    evt.PrimaryContactId,
                    evt.PrimaryContactEmailAddress,
                    participant.ContactId,
                    participant.EmailAddress,
                    mergeData);
                _communicationService.SendMessage(comm);
            }
            catch (Exception ex)
            {
                _logger.Error("Error sending Event Reminder email.", ex);
            }
        }
Ejemplo n.º 4
0
        public List <GroupContactDTO> PotentialVolunteers(int groupId, Models.Crossroads.Events.Event evnt, List <MpGroupParticipant> groupMembers)
        {
            var responses = _opportunityService.GetContactsOpportunityResponseByGroupAndEvent(groupId, evnt.EventId).Select(res =>
            {
                var r = new OpportunityResponseDto()
                {
                    EventId          = res.Event_ID,
                    OpportunityEvent = evnt,
                    ParticipantId    = res.Participant_ID,
                    ResponseResultId = res.Response_Result_ID,
                    OpportunityId    = -1,
                    ResponseId       = -1,
                    Closed           = false,
                    ResponseDate     = res.Response_Date,
                    ContactId        = res.Contact_ID
                };
                return(r);
            }).ToList();

            //var filteredGroupMembers = new List<GroupContactDTO>();
            return(groupMembers.Where(gm =>
            {
                // did this person respond?
                //var responded = responses.All(r => r.ContactId == gm.ContactId);
                var responded = false;
                responses.ForEach(r =>
                {
                    if (r.ContactId == gm.ContactId)
                    {
                        responded = true;
                    }
                });
                if (responded)
                {
                    return false;
                }
                var respondedOnWeekend = RespondedOnWeekend(evnt, gm);
                return !respondedOnWeekend;
            }).ToList().Select(m => new GroupContactDTO()
            {
                ContactId = m.ContactId,
                DisplayName = String.Format("{0}, {1}", m.LastName, m.NickName)
            }).ToList());
        }