public static void CreateProxyItem(SprintSearchCollection SprintRefID, HPMUniqueID ProjectID, HPMUniqueID masterRefID) { HPMTaskCreateUnifiedReference parent = new HPMTaskCreateUnifiedReference(); parent.m_bLocalID = false; parent.m_RefID = SprintRefID.childID; HPMTaskCreateUnifiedReference prevTaskID = new HPMTaskCreateUnifiedReference(); prevTaskID.m_bLocalID = false; prevTaskID.m_RefID = SprintRefID.childID; HPMTaskCreateUnified ProxyTaskCreate = new HPMTaskCreateUnified(); ProxyTaskCreate.m_Tasks = new HPMTaskCreateUnifiedEntry[1]; ProxyTaskCreate.m_Tasks[0] = new HPMTaskCreateUnifiedEntry(); ProxyTaskCreate.m_Tasks[0].m_bIsProxy = true; ProxyTaskCreate.m_Tasks[0].m_LocalID = 0; ProxyTaskCreate.m_Tasks[0].m_TaskType = EHPMTaskType.Planned; ProxyTaskCreate.m_Tasks[0].m_TaskLockedType = EHPMTaskLockedType.BacklogItem; ProxyTaskCreate.m_Tasks[0].m_ParentRefIDs = new HPMTaskCreateUnifiedReference[1]; ProxyTaskCreate.m_Tasks[0].m_ParentRefIDs[0] = parent; ProxyTaskCreate.m_Tasks[0].m_PreviousWorkPrioRefID = new HPMTaskCreateUnifiedReference(); ProxyTaskCreate.m_Tasks[0].m_PreviousWorkPrioRefID.m_RefID = -2; ProxyTaskCreate.m_Tasks[0].m_Proxy_ReferToRefTaskID = masterRefID; prevTaskID.m_bLocalID = true; prevTaskID.m_RefID = 0; HPMChangeCallbackData_TaskCreateUnified proxyResult = SessionManager.Session.TaskCreateUnifiedBlock(ProjectID, ProxyTaskCreate); }
public static Task createNewTask(Task parent, TaskCollection taskCollection) { Task newTask = null; foreach (Task subtask in parent.Leaves) { if (subtask.Name.Equals(taskCollection.status)) { newTask = subtask; } } if (newTask == null && taskCollection.taskHeaders.Count > 0) { SprintSearchCollection searchResult = findSprintTaskID(parent); newTask = CreateTask(parent, parent.Project.UniqueID, taskCollection.status, searchResult); if (newTask == null) { return(null); } } if (taskCollection.taskHeaders.Count > 0) { if (!newTask.GetCustomColumnValue("Item count").Equals(taskCollection.taskHeaders.Count.ToString())) { newTask.SetCustomColumnValue("Item count", taskCollection.taskHeaders.Count.ToString()); } if (parent.Points > 0) { parent.Points = 0; } if (newTask.Points != taskCollection.totalPoints) { newTask.Points = taskCollection.totalPoints; newTask.WorkRemaining = taskCollection.totalPoints - taskCollection.completedPoints; } if (!newTask.Status.Text.Equals(taskCollection.status)) { newTask.Status = HansoftEnumValue.FromString(parent.ProjectID, EHPMProjectDefaultColumn.ItemStatus, taskCollection.status); try { SessionManager.Session.TaskSetCompleted(newTask.UniqueTaskID, taskCollection.status.Equals("Completed"), true); } catch (Exception) { } } } else if (newTask != null) { try { SessionManager.Session.TaskDelete(newTask.UniqueTaskID); } catch (Exception) { } } return(newTask); }
//public static Task CreateTask(Task parent, HPMUniqueID ProjectID, string status, HPMUniqueID sprintID) public static Task CreateTask(Task parentTask, HPMUniqueID ProjectID, string newTaskName, SprintSearchCollection sprintSearchResult) { Task newTask = null; try { HPMUniqueID backlogProjectID = SessionManager.Session.ProjectOpenBacklogProject(ProjectID); HPMTaskCreateUnifiedReference parentRefId = new HPMTaskCreateUnifiedReference(); parentRefId.m_RefID = parentTask.UniqueID; parentRefId.m_bLocalID = false; HPMTaskCreateUnified createData = new HPMTaskCreateUnified(); createData.m_Tasks = new HPMTaskCreateUnifiedEntry[1]; createData.m_Tasks[0] = new HPMTaskCreateUnifiedEntry(); createData.m_Tasks[0].m_bIsProxy = false; createData.m_Tasks[0].m_LocalID = 0; createData.m_Tasks[0].m_ParentRefIDs = new HPMTaskCreateUnifiedReference[1]; createData.m_Tasks[0].m_ParentRefIDs[0] = parentRefId; createData.m_Tasks[0].m_PreviousRefID = new HPMTaskCreateUnifiedReference(); createData.m_Tasks[0].m_PreviousRefID.m_RefID = -1; createData.m_Tasks[0].m_PreviousWorkPrioRefID = new HPMTaskCreateUnifiedReference(); createData.m_Tasks[0].m_PreviousWorkPrioRefID.m_RefID = -2; createData.m_Tasks[0].m_TaskLockedType = EHPMTaskLockedType.BacklogItem; createData.m_Tasks[0].m_TaskType = EHPMTaskType.Planned; HPMChangeCallbackData_TaskCreateUnified result = SessionManager.Session.TaskCreateUnifiedBlock(backlogProjectID, createData); SessionManager.Session.TaskSetFullyCreated(SessionManager.Session.TaskRefGetTask(result.m_Tasks[0].m_TaskRefID)); newTask = Task.GetTask(result.m_Tasks[0].m_TaskRefID); HPMUniqueID masterRefID = newTask.UniqueID; newTask.Name = newTaskName; if (sprintSearchResult.childID != null) { CreateProxyItem(sprintSearchResult, ProjectID, masterRefID); } } catch (Exception) { if (newTask != null) { SessionManager.Session.TaskDelete(newTask.UniqueTaskID); } } return(newTask); }
//public static Task CreateTask(Task parent, HPMUniqueID ProjectID, string status, HPMUniqueID sprintID) public static Task CreateTask(Task parentTask, HPMUniqueID ProjectID, string newTaskName, SprintSearchCollection sprintSearchResult) { Task newTask = null; try { HPMUniqueID backlogProjectID = SessionManager.Session.ProjectOpenBacklogProject(ProjectID); HPMTaskCreateUnifiedReference parentRefId = new HPMTaskCreateUnifiedReference(); parentRefId.m_RefID = parentTask.UniqueID; parentRefId.m_bLocalID = false; HPMTaskCreateUnified createData = new HPMTaskCreateUnified(); createData.m_Tasks = new HPMTaskCreateUnifiedEntry[1]; createData.m_Tasks[0] = new HPMTaskCreateUnifiedEntry(); createData.m_Tasks[0].m_bIsProxy = false; createData.m_Tasks[0].m_LocalID = 0; createData.m_Tasks[0].m_ParentRefIDs = new HPMTaskCreateUnifiedReference[1]; createData.m_Tasks[0].m_ParentRefIDs[0] = parentRefId; createData.m_Tasks[0].m_PreviousRefID = new HPMTaskCreateUnifiedReference(); createData.m_Tasks[0].m_PreviousRefID.m_RefID = -1; createData.m_Tasks[0].m_PreviousWorkPrioRefID = new HPMTaskCreateUnifiedReference(); createData.m_Tasks[0].m_PreviousWorkPrioRefID.m_RefID = -2; createData.m_Tasks[0].m_TaskLockedType = EHPMTaskLockedType.BacklogItem; createData.m_Tasks[0].m_TaskType = EHPMTaskType.Planned; HPMChangeCallbackData_TaskCreateUnified result = SessionManager.Session.TaskCreateUnifiedBlock(backlogProjectID, createData); SessionManager.Session.TaskSetFullyCreated(SessionManager.Session.TaskRefGetTask(result.m_Tasks[0].m_TaskRefID)); newTask = Task.GetTask(result.m_Tasks[0].m_TaskRefID); HPMUniqueID masterRefID = newTask.UniqueID; newTask.Name = newTaskName; if (sprintSearchResult.childID != null) { CreateProxyItem(sprintSearchResult, ProjectID, masterRefID); } } catch (Exception) { if (newTask != null) { SessionManager.Session.TaskDelete(newTask.UniqueTaskID); } } return newTask; }