public void AddLink(Task parentTask, Task dependentTask, TaskLinkType linkType) { CheckLink(parentTask, dependentTask, linkType); var link = new TaskLink { ParentTaskId = parentTask.ID, DependenceTaskId = dependentTask.ID, LinkType = linkType }; if (taskDao.IsExistLink(link)) throw new Exception("link already exist"); ProjectSecurity.DemandEdit(dependentTask); ProjectSecurity.DemandEdit(parentTask); taskDao.AddLink(link); }
public TaskLinkWrapper(TaskLink link) { DependenceTaskId = link.DependenceTaskId; ParentTaskId = link.ParentTaskId; LinkType = link.LinkType; }
public void RemoveLink(TaskLink link) { using (var db = new DbManager(DatabaseId)) { var query = Delete(TasksLinksTable) .Where((Exp.Eq("task_id", link.DependenceTaskId) & Exp.Eq("parent_id", link.ParentTaskId)) | (Exp.Eq("task_id", link.ParentTaskId) & Exp.Eq("parent_id", link.DependenceTaskId))); db.ExecuteNonQuery(query); } }
public bool IsExistLink(TaskLink link) { using (var db = new DbManager(DatabaseId)) { var query = Query(TasksLinksTable) .SelectCount() .Where((Exp.Eq("task_id", link.DependenceTaskId) & Exp.Eq("parent_id", link.ParentTaskId)) | (Exp.Eq("task_id", link.ParentTaskId) & Exp.Eq("parent_id", link.DependenceTaskId))); return db.ExecuteScalar<long>(query) > 0; } }
public void AddLink(TaskLink link) { using (var db = new DbManager(DatabaseId)) { var query = Insert(TasksLinksTable) .InColumnValue("task_id", link.DependenceTaskId) .InColumnValue("parent_id", link.ParentTaskId) .InColumnValue("link_type", link.LinkType); db.ExecuteNonQuery(query); } }