예제 #1
0
        public void DeleteItem(TaskDataBaseItem item)
        {
            TaskBase task = this.dataBaseItemToTask[item];

            this.dataBaseItemToTask.Remove(item);
            this.taskToDataBaseItem.Remove(task);
        }
예제 #2
0
        private TaskDataBaseItem CreateNewDataBaseItemFromTaskAccordingToType(TaskBase task)
        {
            TaskDataBaseItem newItem = null;

            switch (task.TaskType)
            {
            case TaskType.RecurringTask:

                RecurringTask recurringTask = task as RecurringTask;
                newItem = new TaskDataBaseItem()
                {
                    Name           = recurringTask.Name,
                    Description    = recurringTask.Description,
                    TaskType       = recurringTask.TaskType,
                    TimeDue        = recurringTask.TimeDue,
                    Interval       = recurringTask.Interval,
                    TaskOccurences = recurringTask.TaskOccurrences.ToArray()
                };
                break;

            default:
                throw new NotSupportedException();
            }

            return(newItem);
        }
예제 #3
0
 private void UpdateTask(TaskBase task)
 {
     using (var database = new LiteDatabase(DataBasePath))
     {
         var dataBaseTaskCollection    = database.GetCollection <TaskDataBaseItem>(TaskCollectionName);
         TaskDataBaseItem dataBaseItem = taskToDataBaseMapper.GetDataBaseItemFromTask(task);
         taskToDataBaseMapper.UpdateItemInformation(dataBaseItem);
         dataBaseTaskCollection.Update(dataBaseItem);
     }
 }
예제 #4
0
        private void AddTask(TaskBase task)
        {
            using (var database = new LiteDatabase(DataBasePath))
            {
                var dataBaseTaskCollection = database.GetCollection <TaskDataBaseItem>(TaskCollectionName);

                TaskDataBaseItem dataBaseItem = taskToDataBaseMapper.GetDataBaseItemFromTask(task);
                dataBaseTaskCollection.Insert(dataBaseItem);
            }
        }
예제 #5
0
        private void RemoveTask(TaskBase task)
        {
            using (var database = new LiteDatabase(DataBasePath))
            {
                var dataBaseTaskCollection = database.GetCollection <TaskDataBaseItem>(TaskCollectionName);

                TaskDataBaseItem dataBaseItem = taskToDataBaseMapper.GetDataBaseItemFromTask(task);
                taskToDataBaseMapper.DeleteItem(dataBaseItem);
                dataBaseTaskCollection.Delete(t => t == dataBaseItem);
            }
        }
예제 #6
0
        public TaskBase GetTaskFromDataBaseItem(TaskDataBaseItem dataBaseItem)
        {
            if (!this.dataBaseItemToTask.ContainsKey(dataBaseItem))
            {
                TaskBase newTask = this.CreateNewTaskAccordingToTaskBaseItem(dataBaseItem);

                taskToDataBaseItem[newTask]      = dataBaseItem;
                dataBaseItemToTask[dataBaseItem] = newTask;
            }

            return(this.dataBaseItemToTask[dataBaseItem]);
        }
예제 #7
0
        public TaskDataBaseItem GetDataBaseItemFromTask(TaskBase task)
        {
            if (!taskToDataBaseItem.ContainsKey(task))
            {
                TaskDataBaseItem newItem = this.CreateNewDataBaseItemFromTaskAccordingToType(task);

                taskToDataBaseItem[task]    = newItem;
                dataBaseItemToTask[newItem] = task;
            }

            return(taskToDataBaseItem[task]);
        }
예제 #8
0
        public override bool Equals(object obj)
        {
            TaskDataBaseItem other = obj as TaskDataBaseItem;

            if (obj == null)
            {
                return(false);
            }

            return(this.Name == other.Name &&
                   this.Description == other.Description &&
                   this.TaskType == other.TaskType &&
                   this.TimeDue == other.TimeDue &&
                   this.Interval == other.Interval &&
                   HelperMethods.CollectionEqualsCollection(this.TaskOccurences, other.TaskOccurences));
        }
예제 #9
0
        public void UpdateItemInformation(TaskDataBaseItem dataBaseItem)
        {
            TaskBase task = this.dataBaseItemToTask[dataBaseItem];

            dataBaseItem.Name        = task.Name;
            dataBaseItem.Description = task.Description;
            dataBaseItem.TaskType    = task.TaskType;
            dataBaseItem.TimeDue     = task.TimeDue;

            switch (task.TaskType)
            {
            case TaskType.RecurringTask:

                RecurringTask recurringTask = task as RecurringTask;
                dataBaseItem.Interval       = recurringTask.Interval;
                dataBaseItem.TaskOccurences = recurringTask.TaskOccurrences.ToArray();
                break;

            default:
                throw new NotSupportedException();
            }
        }
예제 #10
0
        private TaskBase CreateNewTaskAccordingToTaskBaseItem(TaskDataBaseItem dataBaseItem)
        {
            TaskBase newTask = null;

            switch (dataBaseItem.TaskType)
            {
            case TaskType.RecurringTask:
                RecurringTask newRecurringTask = new RecurringTask(dataBaseItem.Name);
                newRecurringTask.Description = dataBaseItem.Description;
                newRecurringTask.Interval    = dataBaseItem.Interval;
                foreach (TaskOccurrence occurrence in dataBaseItem.TaskOccurences)
                {
                    newRecurringTask.AddOccurrence(occurrence.OccurrenceMoment, occurrence.OccurrenceDuration);
                }

                newTask = newRecurringTask;
                break;

            default:
                throw new NotSupportedException();
            }

            return(newTask);
        }