示例#1
0
        private void beginEdit(EditResult?result = null)
        {
            if (tooltip != null)
            {
                ((ApptToolTip)tooltip).Close();
            }

            if (_appointment.IsRepeating)
            {
                if (!result.HasValue)
                {
                    EditRecurring dlg = new EditRecurring(Application.Current.MainWindow, EditingType.Open);

                    if (dlg.ShowDialog() == false)
                    {
                        return;
                    }

                    _appointment.RepeatIsExceptionToRule = dlg.EditResult == EditResult.Single;
                }
                else
                {
                    _appointment.RepeatIsExceptionToRule = result.Value == EditResult.Single;
                }

                if (!_appointment.RepeatIsExceptionToRule && _appointment.RepeatID != null)
                {
                    // Load base recurring appointment
                    _appointment = AppointmentDatabase.GetRecurringAppointment(_appointment.RepeatID);
                }
            }

            BeginEditEvent(EventArgs.Empty);
        }
示例#2
0
        private void DeserializeAppointments()
        {
            IFormatter formatter = new BinaryFormatter();
            Stream     stream    = new FileStream(PathToAppointmentsFile, FileMode.Open, FileAccess.Read);

            appointmentDatabase = formatter.Deserialize(stream) as AppointmentDatabase;
            stream.Close();
        }
示例#3
0
        private void modifyCategories_Click(object sender, RoutedEventArgs e)
        {
            CategoryEditor editor = new CategoryEditor(() => { return(AppointmentDatabase.GetCategories()); }, AppointmentDatabase.AddCategory, AppointmentDatabase.UpdateCategory, AppointmentDatabase.DeleteCategory);

            editor.Owner = this;
            editor.ShowDialog();

            // We need to refresh all items with a category.
            CurrentCalendarView().RefreshCategories();
        }
示例#4
0
        private void Resize_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (_isResized)
            {
                _isResized = false;
                AppointmentDatabase.UpdateAppointment(_appointment);
                CalendarPeekContent.RefreshAll();
            }

            Mouse.Capture(null);
        }
示例#5
0
        public WeekDetail(DateTime selectedDate, User user)
        {
            InitializeComponent();

            currentUser         = user;
            appointmentDatabase = Utils.DeserializeAppointmentsFile(PathToAppointmentsFile);

            SetDateVariables(selectedDate);
            CreateWeekCells();
            SetWeekView();
            SetCalendarBlocks();
        }
示例#6
0
        private void loadfromdb()
        {
            try
            {
                Appointment[] appts = AppointmentDatabase.GetAppointments(new DateTime(_year, _month, _day));

                if (appts != null)
                {
                    Dispatcher.Invoke(() => { additems(appts); });
                }
            }
            catch (ThreadAbortException) { Thread.ResetAbort(); }
        }
示例#7
0
        public void AnimatedDelete(bool deleteFromDatabase = true)
        {
            if (_isDeleting)
            {
                return;
            }

            CloseToolTip();

            if (deleteFromDatabase && _appointment != null)
            {
                if (_appointment.IsRepeating)
                {
                    EditRecurring dlg = new EditRecurring(Application.Current.MainWindow, EditingType.Delete);

                    if (dlg.ShowDialog() == false)
                    {
                        return;
                    }

                    if (dlg.EditResult == EditResult.Single)
                    {
                        AppointmentDatabase.DeleteOne(_appointment, _appointment.RepresentingDate);
                    }
                    else
                    {
                        AppointmentDatabase.Delete(_appointment);
                    }
                }
                else
                {
                    AppointmentDatabase.Delete(_appointment);
                }

                ReminderQueue.RemoveItem(_appointment.ID, _appointment.IsRepeating ? _appointment.RepresentingDate.Add(_appointment.StartDate.TimeOfDay) : _appointment.StartDate, ReminderType.Appointment);
            }

            _isDeleting = true;
            DeleteStartEvent(EventArgs.Empty);

            if (Settings.AnimationsEnabled)
            {
                AnimationHelpers.DeleteAnimation delAnim = new AnimationHelpers.DeleteAnimation(this);
                delAnim.OnAnimationCompletedEvent += delAnim_OnAnimationCompletedEvent;
                delAnim.Animate();
            }
            else
            {
                DeleteEndEvent(EventArgs.Empty);
            }
        }
示例#8
0
        public void Delete(EditResult?result = null)
        {
            CloseToolTip();

            if (_appointment != null)
            {
                if (_appointment.IsRepeating)
                {
                    if (!result.HasValue)
                    {
                        EditRecurring dlg = new EditRecurring(Window.GetWindow(this), EditingType.Delete);

                        if (dlg.ShowDialog() == false)
                        {
                            return;
                        }

                        if (dlg.EditResult == EditResult.Single)
                        {
                            AppointmentDatabase.DeleteOne(_appointment, _appointment.RepresentingDate);
                        }
                        else
                        {
                            AppointmentDatabase.Delete(_appointment);
                        }
                    }
                    else
                    {
                        if (result.Value == EditResult.Single)
                        {
                            AppointmentDatabase.DeleteOne(_appointment, _appointment.RepresentingDate);
                        }
                        else
                        {
                            AppointmentDatabase.Delete(_appointment);
                        }
                    }
                }
                else
                {
                    AppointmentDatabase.Delete(_appointment);
                }

                ReminderQueue.RemoveItem(_appointment.ID, _appointment.IsRepeating ? _appointment.RepresentingDate.Add(_appointment.StartDate.TimeOfDay) : _appointment.StartDate, ReminderType.Appointment);
            }

            IsHitTestVisible = false;

            DeleteStartEvent(EventArgs.Empty);
            DeleteEndEvent(EventArgs.Empty);
        }
示例#9
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            Args = e.Args;

            CreateJumpList();

            // Make the main process appear connected to the update process
            // in the taskbar.
            try { SetCurrentProcessExplicitAppUserModelID(GlobalAssemblyInfo.AssemblyName); }
            catch { }

            AppointmentDatabase.Load();
            AppointmentDatabase.OnSaveCompletedEvent += AppointmentDatabase_OnSaveCompletedEvent;
            ContactDatabase.Load();
            ContactDatabase.OnSaveCompletedEvent += ContactDatabase_OnSaveCompletedEvent;
            TaskDatabase.Load();
            TaskDatabase.OnSaveCompletedEvent += TaskDatabase_OnSaveCompletedEvent;
            NoteDatabase.Load();
            NoteDatabase.OnSaveCompletedEvent += NoteDatabase_OnSaveCompletedEvent;
            SyncDatabase.Load();
            SyncDatabase.OnSaveCompletedEvent += SyncDatabase_OnSaveCompletedEvent;
            QuoteDatabase.Load();
            QuoteDatabase.OnSaveCompletedEvent += QuoteDatabase_OnSaveCompletedEvent;

            ThemeHelpers.UpdateTheme(true);

            MainWindow mainWindow = new MainWindow();

            mainWindow.ContentRendered += mainWindow_ContentRendered;
            mainWindow.Show();

            SystemEvents.UserPreferenceChanged += SystemEvents_UserPreferenceChanged;
            SystemEvents.TimeChanged           += SystemEvents_TimeChanged;

            if (BackstageEvents.StaticUpdater == null)
            {
                BackstageEvents.StaticUpdater = new BackstageEvents();
            }

            BackstageEvents.StaticUpdater.OnForceUpdateEvent     += StaticUpdater_OnForceUpdateEvent;
            BackstageEvents.StaticUpdater.OnThemeChangedEvent    += StaticUpdater_OnThemeChangedEvent;
            BackstageEvents.StaticUpdater.OnExportEvent          += StaticUpdater_OnExportEvent;
            BackstageEvents.StaticUpdater.OnHelpEvent            += StaticUpdater_OnHelpEvent;
            BackstageEvents.StaticUpdater.OnDocumentRequestEvent += StaticUpdater_OnDocumentRequestEvent;
            BackstageEvents.StaticUpdater.OnPrintStartedEvent    += StaticUpdater_OnPrintStartedEvent;
            BackstageEvents.StaticUpdater.OnImportEvent          += StaticUpdater_OnImportEvent;
            BackstageEvents.StaticUpdater.OnQuotesChangedEvent   += StaticUpdater_OnQuotesChangedEvent;
        }