Esempio n. 1
0
 private void GarbageTasksRemovesItem(SQLCollectionChangedArgs e)
 {
     _sQL.RemoveFromGarbageAsync(SQL.Task, e.Item.ID).ContinueWith(t => { if (t.IsFaulted)
                                                                          {
                                                                              throw t.Exception;
                                                                          }
                                                                   });
 }
Esempio n. 2
0
        private async void GarbageTasksRestoresItem(SQLCollectionChangedArgs e)
        {
            await _sQL.RestoreFromGarbageAsync(SQL.Task, e.Item.ID);

            List <Task> tasks = await _sQL.GetTaskListAsync("ID=" + e.Item.ID, Tags);

            Tasks.RestoreItem(tasks[0]);
        }
Esempio n. 3
0
        public void RemoveTag(SQLCollectionChangedArgs e)
        {
            Tag _tag = e.Item as Tag;

            foreach (var i in Tasks)
            {
                i.Tags.Remove(_tag);
            }
            _sQL.RemoveAsync(SQL.Tag, _tag.ID);
        }
Esempio n. 4
0
        internal static void CheckRemovedTask(SQLCollectionChangedArgs e)
        {
            Task     removedTask = e.Item as Task;
            DateTime now         = DateTime.Now;

            if (removedTask.Type == TaskType.Schedule && removedTask.GetStatusOn(now) == TaskStatus.Available)
            {
                if (RemoveAllUnfinishedTaskOf(removedTask))
                {
                    Notify(UnfinishedTasks[CurrentIndex]);
                }
            }
        }
Esempio n. 5
0
        internal static void CheckChangedTask(SQLCollectionChangedArgs e)
        {
            Task changedTask = e.Item as Task;

            if (e.Property == "Time")
            {
                DateTime now = DateTime.Now;
                if (changedTask.Type == TaskType.Schedule && changedTask.GetStatusOn(now) == TaskStatus.Available)
                {
                    int index = 0;
                    while (index < SnoozedTasks.Count)
                    {
                        if (SnoozedTasks[index].UnfinishedTask.Task == changedTask)
                        {
                            SnoozedTasks.RemoveAt(index);
                        }
                        else
                        {
                            index++;
                        }
                    }
                    bool           isfree        = CurrentIndex < 0;
                    UnfinishedTask oldActiveTask = null;
                    if (CurrentIndex != -1)
                    {
                        oldActiveTask = UnfinishedTasks[GetLastestActiveTaskIndex()];
                        oldActiveTask.NotifiedTime = oldActiveTask.TimeInfo.ActiveTimeOfDay.Value;
                    }
                    RemoveAllUnfinishedTaskOf(changedTask);
                    AddAllUnfinishedTaskOf(changedTask);
                    if (CurrentIndex > -1)
                    {
                        if (oldActiveTask != UnfinishedTasks[CurrentIndex])
                        {
                            Notify(UnfinishedTasks[CurrentIndex]);
                        }
                        else if (isfree)
                        {
                            CurrentIndex = -CurrentIndex - 2;
                        }
                    }
                    else if (CurrentIndex == -1 && oldActiveTask != null)
                    {
                        Notify(null);
                    }
                }
            }
            else if (e.Property == "Repeat")
            {
                DateTime now = DateTime.Now;
                if (changedTask.Type == TaskType.Schedule && changedTask.GetStatusOn(now) == TaskStatus.Available)
                {
                    if (!UnfinishedTasks.Any(x => x.Task == changedTask))
                    {
                        if (AddAllUnfinishedTaskOf(changedTask))
                        {
                            Notify(UnfinishedTasks[CurrentIndex]);
                        }
                    }
                }
                else
                {
                    if (UnfinishedTasks.Any(x => x.Task == changedTask))
                    {
                        if (RemoveAllUnfinishedTaskOf(changedTask))
                        {
                            Notify(UnfinishedTasks[CurrentIndex]);
                        }
                    }
                }
            }
        }
Esempio n. 6
0
 public void EditTask(SQLCollectionChangedArgs e)
 {
     _sQL.UpdateAsync(SQL.Task, e.Item.ID, e.Property, e.NewValue);
 }
Esempio n. 7
0
 public void MoveTaskToGarbage(SQLCollectionChangedArgs e)
 {
     _sQL.RemoveAsync(SQL.Task, e.Item.ID);
 }
Esempio n. 8
0
 public void InsertTask(SQLCollectionChangedArgs e)
 {
     _sQL.InsertAsync(e.Item as Task);
 }