// 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); } }
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); }
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); } }
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()); }