Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }