public void Execute(ArgumentList arguments, TaskList tasklist, TagList tags, TagFolder folder)
 {
     ILister lister = new Lister();
     if (arguments.GetParameter(arguments.GetLength() - 1) == "--export")
         lister = new HtmlLister();
     lister.ListFiltered(tasklist.FilterTasks(arguments.GetParameter(1)), arguments.GetParameter(1));
 }
 public void Execute(ArgumentList arguments, TaskList tasks, TagList tags, TagFolder folder)
 {
     FileIO loader = new FileIO();
     TaskTagger tagTasks = new TaskTagger(tasks.GetTasks());
     if (tagTasks.Untag(arguments.GetParameter(1), arguments.GetParameter(2)))
         loader.SaveTasks(tagTasks.GetTasks());
     else
         Console.WriteLine("No task with that id found to untag");
 }
 public void Execute(ArgumentList arguments, TaskList tasklist, TagList tags, TagFolder folder)
 {
     FileIO loader = new FileIO();
     if (tasklist.RemoveTask(arguments.GetParameter(1)))
         {
         loader.SaveTasks(tasklist.GetTasks());
         Console.WriteLine("Task " + arguments.GetParameter(1) + " removed.");
         }
     else
     Console.WriteLine("No task with that id found to remove");
 }
 public void Execute(ArgumentList arguments, TaskList tasklist, TagList tags, TagFolder folder)
 {
     ILister lister = new Lister();
     if (arguments.GetParameter(arguments.GetLength() - 1) == "--export")
         lister = new HtmlLister();
     if (arguments.GetLength() == 1 || arguments.GetParameter(1) == "--export")
         lister.ListNotDone(tasklist.GetTasks(), string.Empty);
     else if (arguments.GetParameter(1) == "all")
         lister.ListAllTasks(tasklist.GetTasks());
     else if (arguments.GetParameter(1) == "tags")
         lister.ListTags(tags, tasklist);
 }
 public void Execute(ArgumentList arguments, TaskList tasks, TagList tags, TagFolder folder)
 {
     ILister lister = new Lister();
     if (arguments.GetParameter(arguments.GetLength() - 1) == "--export")
         lister = new HtmlLister();
     if (arguments.GetLength() == 1 || arguments.GetParameter(1) == "--export")
         lister.ListNotDone(tasks.FilterDue("past"), string.Empty);
     else if (arguments.GetParameter(1) == "today")
         lister.ListNotDone(tasks.FilterDue("today"), string.Empty);
     else if (arguments.GetParameter(1) == "thisWeek")
         lister.ListNotDone(tasks.FilterDue("thisWeek"), string.Empty);
     else if (arguments.GetParameter(1) == "nextWeek")
         lister.ListNotDone(tasks.FilterDue("nextWeek"), string.Empty);
 }
 public void Execute(ArgumentList arguments, TaskList tasklist, TagList tags, TagFolder folder)
 {
     if (tasklist.HasSameTask(arguments.GetParameter(1)) == false)
     {
         Task task = new Task();
         FileIO loader = new FileIO();
         task.TaskDescription = arguments.GetParameter(1);
         task.IsNewTask = true;
         task = CheckDueDate(arguments, task);
         tasklist.AddTask(ref task);
         loader.SaveTasks(tasklist.GetTasks());
         Console.WriteLine("Task {0} added", task.TaskDescription);
     }
     else Console.WriteLine("Task already in list");
 }
 public void Execute(ArgumentList arguments, TaskList tasks, TagList tags, TagFolder folder)
 {
     FileIO loader = new FileIO();
     TaskTagger tagTasks = new TaskTagger(tasks.GetTasks());
     if (tagTasks.DeleteTag(arguments.GetParameter(1)) || tags.HasTag(arguments.GetParameter(1)))
     {
         Tag tagToRemove = tags.GetTag(tags.GetTagIndex(arguments.GetParameter(1)));
         tags.RemoveTag(ref tagToRemove);
         loader.SaveTags(tags);
         loader.SaveTasks(tagTasks.GetTasks());
         Console.WriteLine("Tag {0} deleted", arguments.GetParameter(1));
     }
     else
         Console.WriteLine("No tag with that name available");
 }
 public void Execute(ArgumentList arguments, TaskList tasklist, TagList tags, TagFolder folder)
 {
     FileIO loader = new FileIO();
     if (tasklist.MarkAsDone(arguments.GetParameter(1)))
     loader.SaveTasks(tasklist.GetTasks());
         else
             Console.WriteLine("No task with that id found to mark as done");
 }
        private static Task CheckDueDate(ArgumentList arguments, Task task)
        {
            if (arguments.GetLength() == 3)
            {
                task.DueDate = Convert.ToDateTime(arguments.GetParameter(2));
                if (task.DueDate < DateTime.Today)
                    Console.WriteLine("Warning, the due date is in the past");
            }

            return task;
        }
 public void Execute(ArgumentList arguments, TaskList tasks, TagList tags, TagFolder folder)
 {
     FileIO loader = new FileIO();
     TaskTagger tagTasks = new TaskTagger(tasks.GetTasks());
     if (arguments.GetLength() == 2)
     {
         Tag tag = new Tag(arguments.GetParameter(1));
         tags.AddTag(ref tag);
         loader.SaveTags(tags);
     }
     else
     {
         if (tagTasks.AssignTag(arguments.GetParameter(1), arguments.GetParameter(2)))
         {
             loader.SaveTasks(tagTasks.GetTasks());
             Tag tag = new Tag(arguments.GetParameter(2));
             tags.AddTag(ref tag);
             loader.SaveTags(tags);
         }
         else
             Console.WriteLine("No task with that id found to tag");
     }
 }
 public void Execute(ArgumentList arguments, TaskList tasks, TagList tags, TagFolder folder)
 {
     FileIO loader = new FileIO();
     if (arguments.GetLength() == 2)
     {
         folder.FolderName = arguments.GetParameter(1);
         loader.SaveFolder(folder);
     }
     else if (arguments.GetLength() == 3 && arguments.GetParameter(1) == "tag")
     {
         Tag toAdd = new Tag(arguments.GetParameter(2));
         folder.AddTag(ref toAdd);
         loader.SaveFolder(folder);
     }
     else if (arguments.GetLength() == 3 && arguments.GetParameter(1) == "subfolder")
     {
         TagFolder toAdd = new TagFolder(arguments.GetParameter(2));
         folder.AddSubfolder(toAdd);
         loader.SaveFolder(folder);
     }
     else if (arguments.GetLength() == 5 && arguments.GetParameter(1) == "subfolder" && arguments.GetParameter(3) == "tag")
     {
         Tag toAdd = new Tag(arguments.GetParameter(4));
         TagFolder copy = folder.GetSubfolder(arguments.GetParameter(2));
         copy.AddTag(ref toAdd);
         folder.ReplaceSubFolder(folder.GetSubfolder(arguments.GetParameter(2)), copy);
         loader.SaveFolder(folder);
     }
     else if (arguments.GetLength() == 5 && arguments.GetParameter(1) == "subfolder" && arguments.GetParameter(3) == "subfolder")
     {
         TagFolder toAdd = new TagFolder(arguments.GetParameter(4));
         TagFolder copy = folder.GetSubfolder(arguments.GetParameter(2));
         copy.AddSubfolder(toAdd);
         folder.ReplaceSubFolder(folder.GetSubfolder(arguments.GetParameter(2)), copy);
         loader.SaveFolder(folder);
     }
 }
        public void Execute(ArgumentList arguments, TaskList tasklist, TagList tags, TagFolder folder)
        {
            FileIO loader = new FileIO();
            switch (arguments.GetTypeOfChange())
            {
                case 0:
                    if (tasklist.ChangeTask(arguments.GetParameter(1), arguments.GetParameter(3), 0))
                        Console.WriteLine("Task {0} changed to {1}", arguments.GetParameter(1), arguments.GetParameter(3));
                    else
                        Console.WriteLine("No task with that id found to change");
                    break;
                case 1:
                    if (tasklist.ChangeTask(arguments.GetParameter(1), arguments.GetParameter(3), 1))
                        Console.WriteLine("Task {0} due date changed to {1}", arguments.GetParameter(1), arguments.GetParameter(3));
                    else
                        Console.WriteLine("No task with that id found to change");
                    break;
                case 2:
                    if (tasklist.ChangeTask(arguments.GetParameter(1), arguments.GetParameter(3), 0) && tasklist.ChangeTask(arguments.GetParameter(1), arguments.GetParameter(5), 1))
                        Console.WriteLine("Task {0} changed to {1}, due date changed to {2}", arguments.GetParameter(1), arguments.GetParameter(3), arguments.GetParameter(5));
                    else
                        Console.WriteLine("No task with that id found to change");
                    break;
                case 3:
                    if (tasklist.ChangeTask(arguments.GetParameter(1), arguments.GetParameter(3), 1) && tasklist.ChangeTask(arguments.GetParameter(1), arguments.GetParameter(5), 0))
                        Console.WriteLine("Task {0} changed to {1}, due date changed to {2}", arguments.GetParameter(1), arguments.GetParameter(5), arguments.GetParameter(3));
                    else
                        Console.WriteLine("No task with that id found to change");
                    break;
                default:
                    Console.WriteLine("Wrong arguments for change command");
                    break;
            }

            loader.SaveTasks(tasklist.GetTasks());
        }