Beispiel #1
0
        private async Task <bool> DeleteTask(TaskItemViewModel task)
        {
            if (task.HasParentTask && task.IsNew ||
                task.IsNew)
            {
                Messenger.Publish(new TaskDeletedMsg(this, task.GoogleId, task.ParentTask));
                return(true);
            }

            Messenger.Publish(new ShowProgressOverlayMsg(this));

            var deleteResponse = await _dataService
                                 .TaskService
                                 .RemoveTaskAsync(task.GoogleId);

            if (TasksHelper.HasReminderId(task.RemindOnGUID, out int id))
            {
                _notificationService.RemoveScheduledNotification(id);
            }

            if (task.HasSubTasks)
            {
                foreach (var st in task.SubTasks)
                {
                    if (TasksHelper.HasReminderId(st.RemindOnGUID, out int stReminderId))
                    {
                        _notificationService.RemoveScheduledNotification(stReminderId);
                    }
                }
            }

            Messenger.Publish(new ShowProgressOverlayMsg(this, false));

            if (!deleteResponse.Succeed)
            {
                Logger.Error(
                    $"{nameof(DeleteTask)}: Couldn't delete the selected task." +
                    $"Error = {deleteResponse.Message}");
                return(false);
            }

            Messenger.Publish(new TaskDeletedMsg(this, task.GoogleId, task.ParentTask));
            return(true);
        }
        private void ReAddReminderDate(
            int notificationId,
            TaskListItemViewModel taskList,
            GoogleTask task)
        {
            if (!TasksHelper.CanReAddReminder(task.RemindOn.Value))
            {
                return;
            }

            string notes = TasksHelper.GetNotesForNotification(task.Notes);

            _notificationService.RemoveScheduledNotification(notificationId);
            _notificationService.ScheduleNotification(new TaskReminderNotification
            {
                Id            = notificationId,
                TaskListId    = taskList.Id,
                TaskId        = task.ID,
                TaskListTitle = taskList.Title,
                TaskTitle     = task.Title,
                TaskBody      = notes,
                DeliveryOn    = task.RemindOn.Value
            });
        }