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)); } } } } }
/// <summary> /// Sets the resource assignments for this task. Assumes 100% allocation for each resource /// </summary> /// <param name="userNames">The list of user names as they are displayed in the Hansoft client. Assumes strings.</param> public void SetResourceAssignmentsFromUserStrings(IList userNames) { Project project = Project.GetProject(MainProjectID); List <Resource> resources = new List <Resource>(); foreach (string rs in userNames) { string trimmed = rs.Trim(); User user = project.Members.Find(u => u.Name == trimmed); if (user != null) { resources.Add(user); } else { User groupMember = project.Members.Find(u => u.Groups.Find(g => g.Name == trimmed) != null); if (groupMember != null) { Group group = groupMember.Groups.Find(g => g.Name == trimmed); resources.Add(group); } } } HPMTaskResourceAllocation allocation = new HPMTaskResourceAllocation(); allocation.m_Resources = new HPMTaskResourceAllocationResource[resources.Count]; for (int i = 0; i < resources.Count; ++i) { allocation.m_Resources[i] = new HPMTaskResourceAllocationResource(); allocation.m_Resources[i].m_PercentAllocated = 100; allocation.m_Resources[i].m_ResourceID = resources.ElementAt(i).UniqueID; } HPMUniqueID taskID = SdkSession.TaskRefGetTask(UniqueID); Session.TaskSetResourceAllocation(taskID, allocation, true, EHPMTaskSetStatusFlag.None); }