public static void PromoteEmailReminders(Item item, List <VAlarm> emailVAlarms, ExDateTime startTime, ExDateTime endTime, bool isOccurrence) { if (item != null && emailVAlarms != null && emailVAlarms.Count > 0) { Reminders <EventTimeBasedInboxReminder> reminders = new Reminders <EventTimeBasedInboxReminder>(); foreach (VAlarm valarm in emailVAlarms) { int reminderOffset = VAlarm.CalculateReminderMinutesBeforeStart(valarm, startTime, endTime); EventTimeBasedInboxReminder eventTimeBasedInboxReminder = new EventTimeBasedInboxReminder(); eventTimeBasedInboxReminder.CustomMessage = valarm.Message; eventTimeBasedInboxReminder.ReminderOffset = reminderOffset; eventTimeBasedInboxReminder.OccurrenceChange = (isOccurrence ? EmailReminderChangeType.Added : EmailReminderChangeType.None); reminders.ReminderList.Add(eventTimeBasedInboxReminder); } Reminders <EventTimeBasedInboxReminder> .Set(item, InternalSchema.EventTimeBasedInboxReminders, reminders); } }
protected override void UpdateEventTimeBasedInboxRemindersForSave(Reminders <EventTimeBasedInboxReminder> reminders) { if (reminders == null) { return; } List <EventTimeBasedInboxReminder> list = new List <EventTimeBasedInboxReminder>(); foreach (EventTimeBasedInboxReminder eventTimeBasedInboxReminder in reminders.ReminderList) { if (eventTimeBasedInboxReminder.OccurrenceChange == EmailReminderChangeType.None) { list.Add(eventTimeBasedInboxReminder); } } foreach (EventTimeBasedInboxReminder item in list) { reminders.ReminderList.Remove(item); } EventTimeBasedInboxReminder.UpdateIdentifiersForModifiedReminders(reminders); }
protected override Reminders <EventTimeBasedInboxReminder> FetchEventTimeBasedInboxReminders() { Reminders <EventTimeBasedInboxReminder> reminders = Reminders <EventTimeBasedInboxReminder> .Get(this, CalendarItemBaseSchema.EventTimeBasedInboxReminders); if (this.IsException) { Reminders <EventTimeBasedInboxReminder> reminders2 = Reminders <EventTimeBasedInboxReminder> .Get(this.OccurrencePropertyBag.MasterCalendarItem, CalendarItemBaseSchema.EventTimeBasedInboxReminders); if (reminders2 == null) { return(reminders); } if (reminders == null) { return(reminders2); } List <EventTimeBasedInboxReminder> list = new List <EventTimeBasedInboxReminder>(); foreach (EventTimeBasedInboxReminder eventTimeBasedInboxReminder in reminders.ReminderList) { if (eventTimeBasedInboxReminder.OccurrenceChange == EmailReminderChangeType.Deleted && reminders2.GetReminder(eventTimeBasedInboxReminder.SeriesReminderId) == null) { list.Add(eventTimeBasedInboxReminder); } } foreach (EventTimeBasedInboxReminder item in list) { reminders.ReminderList.Remove(item); } foreach (EventTimeBasedInboxReminder eventTimeBasedInboxReminder2 in reminders2.ReminderList) { if (EventTimeBasedInboxReminder.GetSeriesReminder(reminders, eventTimeBasedInboxReminder2.Identifier) == null) { reminders.ReminderList.Add(eventTimeBasedInboxReminder2); } } } return(reminders); }