/// <summary> /// Aktualisiert das Datum des nächsten Termins, an dem der Reminder feuert. /// </summary> private void updateNextReminderDate() { Debug.WriteLine("In updateNextReminderDate."); if (SelectedStartDate == DateTimeOffset.MinValue || SelectedEndDate == DateTimeOffset.MinValue) return; DateTime selectedStartDateTmp = new DateTime(SelectedStartDate.Year, SelectedStartDate.Month, SelectedStartDate.Day, SelectedTime.Hours, SelectedTime.Minutes, SelectedTime.Seconds); DateTime selectedEndDateTmp = new DateTime(SelectedEndDate.Year, SelectedEndDate.Month, SelectedEndDate.Day, SelectedTime.Hours, SelectedTime.Minutes, SelectedTime.Seconds); selectedStartDateTmp = DateTime.SpecifyKind(selectedStartDateTmp, DateTimeKind.Local); selectedEndDateTmp = DateTime.SpecifyKind(selectedEndDateTmp, DateTimeKind.Local); DateTimeOffset reminderStartDate = new DateTimeOffset(selectedStartDateTmp); DateTimeOffset reminderEndDate = new DateTimeOffset(selectedEndDateTmp); //DateTimeOffset reminderStartDate = new DateTimeOffset(SelectedStartDate.Year, SelectedStartDate.Month, SelectedStartDate.Day, // SelectedTime.Hours, SelectedTime.Minutes, SelectedTime.Seconds, TimeZoneInfo.Local.BaseUtcOffset); //DateTimeOffset reminderEndDate = new DateTimeOffset(SelectedEndDate.Year, SelectedEndDate.Month, SelectedEndDate.Day, // SelectedTime.Hours, SelectedTime.Minutes, SelectedTime.Seconds, TimeZoneInfo.Local.BaseUtcOffset); // Erzeuge Reminder Objekt mit aktuellen Daten und lasse den nächsten // Reminder Zeitpunkt bestimmen. Reminder reminderTmp = new Reminder() { StartDate = reminderStartDate, EndDate = reminderEndDate, Ignore = SkipNextReminderDate, Interval = IntervalValue }; reminderTmp.ComputeFirstNextDate(); reminderTmp.EvaluateIsExpired(); if (reminderTmp.IsExpired) { Debug.WriteLine("Reminder is expired."); IsReminderExpired = true; } else { IsReminderExpired = false; } NextReminderDate = reminderTmp.NextDate; }
/// <summary> /// Aktualisiert die für die View relevanten Parameter eines Reminder Objekts, welches aktuell /// vom ViewModel gehalten wird. /// </summary> /// <param name="currentReminder">Die aktuell gehaltene Reminder-Instanz.</param> /// <param name="newReminder">Die Reminder-Instanz mit den neuen Daten.</param> private void updateViewRelatedPropertiesOfReminder(Reminder currentReminder, Reminder newReminder) { currentReminder.StartDate = newReminder.StartDate; currentReminder.EndDate = newReminder.EndDate; currentReminder.Interval = newReminder.Interval; currentReminder.Ignore = newReminder.Ignore; currentReminder.IsActive = newReminder.IsActive; currentReminder.Text = newReminder.Text; currentReminder.Title = newReminder.Title; currentReminder.MessagePriority = newReminder.MessagePriority; currentReminder.ModificationDate = newReminder.ModificationDate; currentReminder.AuthorId = newReminder.AuthorId; currentReminder.ComputeFirstNextDate(); currentReminder.EvaluateIsExpired(); }