public Item GetPertinentItem(ExDateTime actualizationTime) { Reminder.ReminderInfo pertinentItemInfo = this.GetPertinentItemInfo(this.GetProbeTime(actualizationTime)); if (pertinentItemInfo == null || pertinentItemInfo.PertinentItemId == null) { return(null); } return(Item.Bind(this.Item.Session, pertinentItemInfo.PertinentItemId)); }
public static bool IsForSamePertinentItem(Reminder.ReminderInfo v1, Reminder.ReminderInfo v2) { bool?flag = v1.IsForSamePertinentItem(v2); if (flag == null) { return(v2.IsForSamePertinentItem(v1) ?? true); } return(flag.GetValueOrDefault()); }
public virtual void Dismiss(ExDateTime actualizationTime) { ExDateTime probeTime = this.GetProbeTime(actualizationTime); Reminder.ReminderInfo nextPertinentItemInfo = this.GetNextPertinentItemInfo(probeTime); this.SetReminderTo(nextPertinentItemInfo); CalendarItemBase calendarItemBase = this.item as CalendarItemBase; if (calendarItemBase != null) { calendarItemBase.LocationIdentifierHelperInstance.SetLocationIdentifier(39413U, LastChangeAction.DismissReminder); } }
private void SetReminderTo(Reminder.ReminderInfo newPertinentItem) { if (newPertinentItem != null) { this.Item.LocationIdentifierHelperInstance.SetLocationIdentifier(61301U); this.Item[InternalSchema.ReminderIsSetInternal] = true; this.Item[InternalSchema.ReminderDueByInternal] = newPertinentItem.DefaultDueBy; this.ReminderNextTime = new ExDateTime?(newPertinentItem.DefaultReminderNextTime); } else { this.Item.LocationIdentifierHelperInstance.SetLocationIdentifier(53109U); this.Item[InternalSchema.ReminderIsSetInternal] = false; this.Item[InternalSchema.TaskResetReminder] = true; } this.lastSetTo = newPertinentItem; this.isSnoozed = false; }
public void SnoozeBeforeDueBy(ExDateTime actualizationTime, TimeSpan beforeDueBy) { if (beforeDueBy.TotalMilliseconds < 0.0) { throw new ArgumentOutOfRangeException("beforeDueBy"); } Reminder.ReminderInfo pertinentItemInfo = this.GetPertinentItemInfo(this.GetProbeTime(actualizationTime)); if (pertinentItemInfo == null) { return; } ExDateTime exDateTime = pertinentItemInfo.DefaultDueBy; if (exDateTime - beforeDueBy > this.Now) { exDateTime -= beforeDueBy; } this.Snooze(actualizationTime, exDateTime); }
protected virtual void Adjust(ExDateTime actualizationTime) { this.EnsureRequiredPropertiesArePresent(); Reminder.ReminderInfo pertinentItemInfo = this.GetPertinentItemInfo(actualizationTime); Reminder.ReminderInfo nextPertinentItemInfo = this.GetNextPertinentItemInfo(actualizationTime); Reminder.ReminderInfo reminderInfo; if (this.ReminderNextTime == null || this.lastSetTo == null || pertinentItemInfo == null) { reminderInfo = (nextPertinentItemInfo ?? pertinentItemInfo); } else if (nextPertinentItemInfo != null && this.ReminderNextTime >= nextPertinentItemInfo.DefaultReminderNextTime) { reminderInfo = nextPertinentItemInfo; } else if (this.ReminderNextTime >= pertinentItemInfo.DefaultReminderNextTime) { if (Reminder.ReminderInfo.IsForSamePertinentItem(pertinentItemInfo, this.lastSetTo)) { if (this.lastSetTo.DefaultReminderNextTime != pertinentItemInfo.DefaultReminderNextTime || this.lastSetTo.DefaultDueBy != pertinentItemInfo.DefaultDueBy) { reminderInfo = pertinentItemInfo; } else { reminderInfo = null; } } else { reminderInfo = nextPertinentItemInfo; } } else { reminderInfo = null; } if (reminderInfo != null) { this.SetReminderTo(reminderInfo); } }
protected internal virtual void SaveStateAsInitial(bool throwOnFailure) { this.lastSetTo = null; this.isSnoozed = false; if (this.ReminderNextTime != null) { try { Reminder.ReminderInfo pertinentItemInfo = this.GetPertinentItemInfo(this.ReminderNextTime.Value); this.isSnoozed = (pertinentItemInfo != null && this.ReminderNextTime != pertinentItemInfo.DefaultReminderNextTime); this.lastSetTo = pertinentItemInfo; } catch (CorruptDataException arg) { ExTraceGlobals.RecurrenceTracer.Information <Type, CorruptDataException>((long)this.GetHashCode(), "{0}.SaveStateAsInitial failed: {1}", base.GetType(), arg); if (throwOnFailure) { throw; } } } }
public virtual void Snooze(ExDateTime actualizationTime, ExDateTime snoozeTime) { ExDateTime probeTime = this.GetProbeTime(actualizationTime); Reminder.ReminderInfo nextPertinentItemInfo = this.GetNextPertinentItemInfo(probeTime); if (probeTime < snoozeTime) { if (nextPertinentItemInfo == null || nextPertinentItemInfo.DefaultReminderNextTime > snoozeTime) { this.ReminderNextTime = new ExDateTime?(snoozeTime); } else { this.Dismiss(actualizationTime); } CalendarItemBase calendarItemBase = this.item as CalendarItemBase; if (calendarItemBase != null) { calendarItemBase.LocationIdentifierHelperInstance.SetLocationIdentifier(55797U, LastChangeAction.SnoozeReminder); } } }
protected virtual bool?IsForSamePertinentItem(Reminder.ReminderInfo reminderInfo) { return(null); }