+ public RooProject addProject(Json.Object t)
+ {
+ var add = new RooProject();
+ add.id = t.get_string_member("id");
+ add.name = t.get_string_member("name");
+ add.type = t.get_string_member("type");
+ add.code = t.get_string_member("code");
+ this.projects.add(add);
+ GLib.debug("ADD project %s : %s : %s", add.id, add.code, add.name);
+ return add;
+ }
+
+ public RooRepo addRepo(Json.Object t)
+ {
+ var add = new RooRepo();
+ add.id = t.get_string_member("id");
+ add.shortname = t.get_string_member("shortname");
+ add.description = t.get_string_member("description");
+ add.project_id = t.get_string_member("project_id");
+ this.repos.add(add);
+ GLib.debug("ADD project %s : %s : %s", add.id, add.shortname, add.project_id);
+ return add;
+ }
+
+ public RooProject? getProjectByRepo(GitRepo repo)
+ {
+ var rt = RooTicket.singleton();
+
+ if (rt.repos.size < 1) {
+ rt.loadRepos();
+ }
+ if (rt.projects.size < 1) {
+ rt.loadProjects();
+ }
+
+ var pid = "";
+ foreach(var roo_repo in rt.repos) {
+ if (roo_repo.shortname == repo.name) {
+ pid = roo_repo.project_id;
+ break;
+ }
+ }
+ if (pid == "") {
+ GLib.debug("getProjectByRepo: repo has no project");
+ return null;
+ }
+ // get project by id...
+ foreach(var roo_project in rt.projects) {
+ if (roo_project.id == pid) {
+ GLib.debug("getProjectByRepo: project_id = %s", pid);
+ return roo_project;
+ }
+ }
+ GLib.debug("getProjectByRepo: can not find project");
+ return null;
+
+ }
+
+
+ public static RooTicket fakeTicket()
+ {
+ var t = new RooTicket();
+ t.id = "-1";
+ t.summary = "";
+ t.description = "";
+ t.project_id_name = "";
+ RooTicket.singleton().tickets.add(t);
+ return t;
+ }
+