Exemple #1
0
 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));
 }
Exemple #2
0
            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());
            }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
 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;
 }
Exemple #5
0
        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);
        }
Exemple #6
0
 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);
     }
 }
Exemple #7
0
 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;
             }
         }
     }
 }
Exemple #8
0
        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);
                }
            }
        }
Exemple #9
0
 protected virtual bool?IsForSamePertinentItem(Reminder.ReminderInfo reminderInfo)
 {
     return(null);
 }