コード例 #1
0
        protected virtual void DeleteAction()
        {
            ReminderEntity reminderToDelete = SelectedReminder;

            if (reminderToDelete == null)
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningReminderNotSelectedToDelete"));
                return;
            }

            string       confirmationText   = TranslationProvider.Tr("confirmDeletingDialog") + " " + reminderToDelete.Name + ".";
            DialogResult confirmationResult = MessageBox.Show(confirmationText, "", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

            if (confirmationResult != DialogResult.OK)
            {
                Log.Logger.Information($"Confirmation not given for deleting {reminderToDelete.Name}");
                return;
            }

            bool result = PersistenceAdapter.Delete(reminderToDelete.Name);

            if (result == true)
            {
                HandleRemovingFromListBox(reminderToDelete);
            }
            else
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningSnoozedReminderCannotDelete"));
            }
        }
コード例 #2
0
        protected virtual void EditAction()
        {
            ReminderEntity reminderToUpdate = SelectedReminder;

            if (reminderToUpdate == null)
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningReminderNotSelectedToEdit"));
                return;
            }

            CreateAndUpdateReminderForm createReminderForm = new CreateAndUpdateReminderForm(PersistenceAdapter, reminderToUpdate);

            createReminderForm.ShowDialog();

            if (createReminderForm.DialogResult != DialogResult.OK)
            {
                Log.Logger.Information($"UpdateReminderForm closed with result NotOk.");
                return;
            }

            var updatedReminder = createReminderForm.CreateOrUpdatedReminder;

            bool result = PersistenceAdapter.Update(reminderToUpdate.Name, updatedReminder);

            if (result == true)
            {
                //using the element in the listbox
                remindersListBox.Items[remindersListBox.SelectedIndex] = updatedReminder;
            }
            else
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningSnoozedReminderCannotModify"));
            }
        }
コード例 #3
0
        protected virtual void CloneAction()
        {
            if (SelectedReminder == null)
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningReminderNotSelectedToClone"));
                return;
            }


            //TODO: add clone dialog
            ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningNotYetImplemented"));
            ReminderEntity clone = (ReminderEntity)SelectedReminder.Clone();

            //TODO: missing validation of backend causes creating duplicate name
            //PersistenceAdapter.Save(clone);
            //remindersListBox.Items.Add(clone);
        }
コード例 #4
0
        protected virtual bool ValidateInput()
        {
            //TODO DP->SI: add warning if user attempts to create recuring event in future so that one or more occurence of reminder are skipped between now and the scheduled time.
            //Such a reminder would in some way be a contradiction because user violates his own rules. No need to keep track of such an edge case for now.
            //TODO: maybe add validation against special characters in reminder name that would interfere with xml persistence although CDATA elemtns should have some protection already

            DateTime scheduledDateTime = GetDateTimeFromUI();

            if (scheduledDateTime < DateTime.Now)
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningReminderElapsed"));
                return(false);
            }

            string reminderName        = reminderNameStringBox.Text;
            bool   reminderNameIsEmpty = string.IsNullOrWhiteSpace(reminderName);

            if (reminderNameIsEmpty)
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningMissingReminderName"));
                return(false);
            }

            bool nameSameAsBefore = oldValueOfReminderToBeUpdated?.Name == reminderName;

            if (!nameSameAsBefore && !IsNameAvialable(reminderName))
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningReminderNameAlreadyExists"));
                return(false);
            }

            bool multiplePeriodsChecked = DetermineIfMultiplePeriodsChecked();

            if (multiplePeriodsChecked)
            {
                ErrorDialogUtility.ErrorDialog(TranslationProvider.Tr("warningMultipleReminderPeriodsSelected"));
                return(false);
            }

            Log.Logger.Information($"Reminder '{reminderName}' valid.");
            return(true);
        }