Exemplo n.º 1
0
        private static Task CreateTask(HPMUniqueID uniqueID)
        {
            HPMUniqueID        uniqueTaskID = SdkSession.TaskRefGetTask(uniqueID);
            EHPMTaskLockedType lockedType   = SdkSession.TaskGetLockedType(uniqueTaskID);

            switch (lockedType)
            {
            case EHPMTaskLockedType.BacklogItem:
                if (SdkSession.UtilIsIDBacklogProject(SdkSession.TaskGetContainer(uniqueTaskID)))
                {
                    if (SdkSession.TaskGetMainReference(uniqueTaskID).m_ID == uniqueID.m_ID)
                    {
                        return(ProductBacklogItem.GetProductBacklogItem(uniqueID, uniqueTaskID));
                    }
                    else
                    {
                        return(ProductBacklogItemInSprint.GetProductBacklogItemInSprint(uniqueID, uniqueTaskID));
                    }
                }
                else
                {
                    return(SprintBacklogItem.GetSprintBacklogItem(uniqueID, uniqueTaskID));
                }

            case EHPMTaskLockedType.QABug:
                return(Bug.GetBug(uniqueID, uniqueTaskID));

            case EHPMTaskLockedType.SprintItem:
                return(Sprint.GetSprint(uniqueID, uniqueTaskID));

            case EHPMTaskLockedType.Normal:
            default:
                if (SdkSession.TaskGetForceSubProject(uniqueTaskID))
                {
                    return(SubProject.GetSubProject(uniqueID, uniqueTaskID));
                }
                else
                {
                    EHPMTaskType taskType = SdkSession.TaskGetType(uniqueTaskID);
                    switch (taskType)
                    {
                    case EHPMTaskType.Milestone:
                        return(Release.GetRelease(uniqueID, uniqueTaskID));

                    case EHPMTaskType.Planned:
                    default:
                        if (SdkSession.UtilIsIDBacklogProject(SdkSession.TaskGetContainer(uniqueTaskID)))
                        {
                            return(ProductBacklogItemInSchedule.GetProductBacklogItemInSchedule(uniqueID, uniqueTaskID));
                        }
                        else
                        {
                            return(ScheduledTask.GetScheduledTask(uniqueID, uniqueTaskID));
                        }
                    }
                }
            }
        }