private void detail_OnEndEditEvent(object sender, EventArgs e)
        {
            stackPanel.Margin = new Thickness(0, 5, 0, 5);

            MonthDetail _sender     = (MonthDetail)sender;
            Appointment appointment = _sender.Appointment;

            if (!_forceSave && string.IsNullOrEmpty(appointment.Subject) &&
                !appointment.IsRepeating &&
                !AppointmentDatabase.AppointmentExists(appointment))
            {
                stackPanel.Children.Remove(_sender);
                AppointmentDatabase.Delete(appointment);
                ReminderQueue.RemoveItem(appointment.ID, appointment.IsRepeating ? appointment.RepresentingDate.Add(appointment.StartDate.TimeOfDay) : appointment.StartDate, ReminderType.Appointment);
            }
            else
            {
                Appointment exception = AppointmentDatabase.UpdateAppointment(appointment);

                if (exception != null)
                {
                    _sender.Appointment = exception;
                }

                ReminderQueue.Populate();
            }

            _forceSave = false;

            EndEditEvent(e);

            _activeDetail = null;
        }
예제 #2
0
        public void CancelEdit()
        {
            _inEditMode = false;

            _appointment = _uneditedAppointment;

            InitializeDisplay();

            display.Visibility    = Visibility.Visible;
            edit.Visibility       = Visibility.Collapsed;
            edit.IsEnabled        = false;
            subjectEdit.IsEnabled = false;

            Height = CollapsedHeight;

            if (AppointmentDatabase.AppointmentExists(_appointment))
            {
                EndEditEvent(EventArgs.Empty);
            }
            else
            {
                DeleteStartEvent(EventArgs.Empty);
                DeleteEndEvent(EventArgs.Empty);
            }
        }