/// <summary> /// Finds a custom column in the project view. /// </summary> /// <param name="columnName">The name of the column to find.</param> /// <returns>The column if found, otherwise null.</returns> public HPMProjectCustomColumnsColumn GetCustomColumn(string columnName) { HPMProjectCustomColumns allColumns = Session.ProjectCustomColumnsGet(UniqueID); foreach (HPMProjectCustomColumnsColumn customColumn in allColumns.m_ShowingColumns) { if ((customColumn.m_Name).Equals(columnName)) { return(customColumn); } } return(null); }
private void CloneColumns(HPMUniqueID sourceProjectID, HPMUniqueID targetProjectID) { HPMProjectCustomColumns columns = Session.ProjectCustomColumnsGet(sourceProjectID); HPMProjectCustomColumnChanges newColumns = new HPMProjectCustomColumnChanges(); newColumns.m_ProjectID = sourceProjectID; List <HPMProjectCustomColumnsColumn> added = new List <HPMProjectCustomColumnsColumn>(); foreach (HPMProjectCustomColumnsColumn column in columns.m_ShowingColumns) { added.Add(column); } foreach (HPMProjectCustomColumnsColumn column in columns.m_HiddenColumns) { added.Add(column); } newColumns.m_Added = added.ToArray(); Session.ProjectCustomColumnsSet(newColumns); }
private void CloneChildTasks(HansoftItem sourceParent, HansoftItem targetParent, ProjectView targetProject, HPMProjectCustomColumns customColumns) { Task newTask = null; foreach (Task task in sourceParent.Children) { HPMTaskCreateUnifiedReference prevRefID = new HPMTaskCreateUnifiedReference(); if (newTask == null) prevRefID.m_RefID = -1; else prevRefID.m_RefID = newTask.UniqueTaskID; prevRefID.m_bLocalID = false; HPMTaskCreateUnifiedReference prevWorkPrioRefID = new HPMTaskCreateUnifiedReference(); prevWorkPrioRefID.m_RefID = -2; prevWorkPrioRefID.m_bLocalID = false; HPMTaskCreateUnifiedReference[] parentRefIds = new HPMTaskCreateUnifiedReference[1]; parentRefIds[0] = new HPMTaskCreateUnifiedReference(); parentRefIds[0].m_RefID = targetParent.Id; // This should be a taskref, which it should be parentRefIds[0].m_bLocalID = false; HPMTaskCreateUnified createTaskData = new HPMTaskCreateUnified(); createTaskData.m_Tasks = new HPMTaskCreateUnifiedEntry[1]; createTaskData.m_Tasks[0] = new HPMTaskCreateUnifiedEntry(); createTaskData.m_Tasks[0].m_bIsProxy = false; createTaskData.m_Tasks[0].m_LocalID = -1; createTaskData.m_Tasks[0].m_ParentRefIDs = parentRefIds; createTaskData.m_Tasks[0].m_PreviousRefID = prevRefID; createTaskData.m_Tasks[0].m_PreviousWorkPrioRefID = prevWorkPrioRefID; createTaskData.m_Tasks[0].m_NonProxy_ReuseID = 0; createTaskData.m_Tasks[0].m_TaskLockedType = Session.TaskGetLockedType(task.UniqueTaskID); createTaskData.m_Tasks[0].m_TaskType = Session.TaskGetType(task.UniqueTaskID); HPMChangeCallbackData_TaskCreateUnified createdData = Session.TaskCreateUnifiedBlock(targetProject.UniqueID, createTaskData); if (createdData.m_Tasks.Length == 1) { newTask = Task.GetTask(createdData.m_Tasks[0].m_TaskRefID); newTask.Category = task.Category; newTask.Confidence = task.Confidence; newTask.DetailedDescription = task.DetailedDescription; newTask.EstimatedDays = task.EstimatedDays; newTask.Hyperlink = task.Hyperlink; newTask.Name = task.Name; newTask.Points = task.Points; newTask.Priority = task.Priority; newTask.Risk = task.Risk; newTask.Severity = task.Severity; newTask.Status = task.Status; newTask.WorkRemaining = task.WorkRemaining; Session.TaskSetFullyCreated(newTask.UniqueTaskID); foreach (HPMProjectCustomColumnsColumn column in customColumns.m_ShowingColumns) newTask.SetCustomColumnValue(column.m_Name, task.GetCustomColumnValue(column.m_Name)); CloneChildTasks(task, newTask, targetProject, customColumns); } } }
private void CloneChildTasks(HansoftItem sourceParent, HansoftItem targetParent, ProjectView targetProject, HPMProjectCustomColumns customColumns) { Task newTask = null; foreach (Task task in sourceParent.Children) { HPMTaskCreateUnifiedReference prevRefID = new HPMTaskCreateUnifiedReference(); if (newTask == null) { prevRefID.m_RefID = -1; } else { prevRefID.m_RefID = newTask.UniqueTaskID; } prevRefID.m_bLocalID = false; HPMTaskCreateUnifiedReference prevWorkPrioRefID = new HPMTaskCreateUnifiedReference(); prevWorkPrioRefID.m_RefID = -2; prevWorkPrioRefID.m_bLocalID = false; HPMTaskCreateUnifiedReference[] parentRefIds = new HPMTaskCreateUnifiedReference[1]; parentRefIds[0] = new HPMTaskCreateUnifiedReference(); parentRefIds[0].m_RefID = targetParent.Id; // This should be a taskref, which it should be parentRefIds[0].m_bLocalID = false; HPMTaskCreateUnified createTaskData = new HPMTaskCreateUnified(); createTaskData.m_Tasks = new HPMTaskCreateUnifiedEntry[1]; createTaskData.m_Tasks[0] = new HPMTaskCreateUnifiedEntry(); createTaskData.m_Tasks[0].m_bIsProxy = false; createTaskData.m_Tasks[0].m_LocalID = -1; createTaskData.m_Tasks[0].m_ParentRefIDs = parentRefIds; createTaskData.m_Tasks[0].m_PreviousRefID = prevRefID; createTaskData.m_Tasks[0].m_PreviousWorkPrioRefID = prevWorkPrioRefID; createTaskData.m_Tasks[0].m_NonProxy_ReuseID = 0; createTaskData.m_Tasks[0].m_TaskLockedType = Session.TaskGetLockedType(task.UniqueTaskID); createTaskData.m_Tasks[0].m_TaskType = Session.TaskGetType(task.UniqueTaskID); HPMChangeCallbackData_TaskCreateUnified createdData = Session.TaskCreateUnifiedBlock(targetProject.UniqueID, createTaskData); if (createdData.m_Tasks.Length == 1) { newTask = Task.GetTask(createdData.m_Tasks[0].m_TaskRefID); newTask.Category = task.Category; newTask.Confidence = task.Confidence; newTask.DetailedDescription = task.DetailedDescription; newTask.EstimatedDays = task.EstimatedDays; newTask.Hyperlink = task.Hyperlink; newTask.Name = task.Name; newTask.Points = task.Points; newTask.Priority = task.Priority; newTask.Risk = task.Risk; newTask.Severity = task.Severity; newTask.Status = task.Status; newTask.WorkRemaining = task.WorkRemaining; Session.TaskSetFullyCreated(newTask.UniqueTaskID); foreach (HPMProjectCustomColumnsColumn column in customColumns.m_ShowingColumns) { newTask.SetCustomColumnValue(column.m_Name, task.GetCustomColumnValue(column.m_Name)); } CloneChildTasks(task, newTask, targetProject, customColumns); } } }