public IceTask(IceBackend iceBackend, IceCategory iceCategory, TaskEntry taskEntry) { this.backend = iceBackend; this.category = iceCategory; this.entry = taskEntry; if (entry.Status == TaskStatus.Completed) this.state = TaskState.Completed; else if (entry.Status == TaskStatus.Cancelled) this.state = TaskState.Inactive; // TODO: Is this the right thing to do? else this.state = TaskState.Active; // Construct a unique id in the format of // <team-id>-<team-folder-id>-<task-entry-id> id = string.Format ("{0}-{1}-{2}", iceCategory.Team.ID, iceCategory.Folder.ID, taskEntry.ID); }
private void LoadTasksFromCategory(IceCategory category) { TaskEntry [] taskEntries = null; try { taskEntries = deskIceDaemon.GetTaskEntries (category.Folder.ID); } catch (Exception e) { Logger.Warn ("Exception loading tasks from category: {0}", e.Message); return; } foreach (TaskEntry entry in taskEntries) { IceTask task = new IceTask (this, category, entry); Gtk.TreeIter iter; if (taskIters.ContainsKey (task.Id)) iter = taskIters [task.Id]; else { iter = tasks.Append (); taskIters [task.Id] = iter; } tasks.SetValue (iter, 0, task); } }
/// <summary> /// Refreshes the backend. /// </summary> public void Refresh() { // TODO: Eventually don't clear out existing entries, but match up // the updates // categories.Clear (); // TODO: Eventually don't clear out existing tasks, but match them // up with the updates // tasks.Clear (); Teamspace [] teams = null; try { teams = deskIceDaemon.GetTeamList (); } catch { Logger.Warn ("Exception thrown getting team list"); return; } foreach (Teamspace team in teams) { Logger.Debug ("Team Found: {0} ({1})", team.Name, team.ID); // Check to see if the team has tasks enabled TaskFolder [] taskFolders = null; try { taskFolders = deskIceDaemon.GetTaskFolders (team.ID); } catch { Logger.Warn ("Exception thrown getting task folders"); return; } foreach (TaskFolder taskFolder in taskFolders) { // Create an IceCategory for each folder IceCategory category = new IceCategory (team, taskFolder); Gtk.TreeIter iter; if (categoryIters.ContainsKey (category.Id)) iter = categoryIters [category.Id]; else { iter = categories.Append (); categoryIters [category.Id] = iter; } categories.SetValue (iter, 0, category); LoadTasksFromCategory (category); } } // TODO: Wrap this in a try/catch if (BackendSyncFinished != null) { try { BackendSyncFinished (); } catch (Exception e) { Logger.Warn ("Error calling BackendSyncFinished handler: {0}", e.Message); } } }