Example #1
0
 internal static int CompareSubtasks(Subtask x, Subtask y)
 {
     if (x.Priority < y.Priority)
     {
         return -1;
     }
     else if (x.Priority > y.Priority)
     {
         return 1;
     }
     return 0;
 }
Example #2
0
 private List<Subtask> Subtasks()
 {
     List<Subtask> subtasks = new List<Subtask>();
     TreeIter iter;
     bool valid = subtaskList.GetIterFirst(out iter);
     int priority = 0;
     while (valid) {
         int id = Convert.ToInt32((string) subtaskList.GetValue(iter, 3));
         Subtask subtask = task.FindSubtask(id);
         bool formFinished = (bool) subtaskList.GetValue(iter, 0);
         DateTime date = DateTime.MinValue;
         if (subtask != null)
             if (subtask.Finished != DateTime.MinValue && formFinished)
                 date = subtask.Finished;
             else if (subtask.Finished == DateTime.MinValue && !formFinished)
                 date = DateTime.MinValue;
             else if (subtask.Finished != DateTime.MinValue && !formFinished)
                 date = DateTime.MinValue;
         else
             if (formFinished)
                 date = DateTime.Now;
         Subtask newsubtask = new Subtask(id, (string) subtaskList.GetValue(iter, 1), date, priority);
         try { // Bail out if the current subtask has no Worked
             foreach (DateTime time in subtask.Worked) {
                 newsubtask.Worked.Add(time);
             }
         } catch {}
         if ((bool) subtaskList.GetValue(iter, 2) && !newsubtask.IsWorked(DateTime.Now)) {
             newsubtask.Worked.Add(DateTime.Now);
         }
         subtasks.Add(newsubtask);
         priority++;
         valid = subtaskList.IterNext(ref iter);
     }
     return subtasks;
 }