internal List <Task> Find(string findString, EHPMReportViewType viewType) { List <Task> found = new List <Task>(); HPMFindContext findContext = new HPMFindContext(); HPMFindContextData data = SessionManager.Session.UtilPrepareFindContext(findString, UniqueID, viewType, findContext); HPMTaskEnum items = SessionManager.Session.TaskFind(data, EHPMTaskFindFlag.None); foreach (HPMUniqueID taskID in items.m_Tasks) { found.Add(Task.GetTask(taskID, viewType)); } return(found); }
public static SprintSearchCollection findSprintTaskID(Task parentTask) { HPMFindContext FindContext = new HPMFindContext(); HPMFindContextData FindContextData = SessionManager.Session.UtilPrepareFindContext("Itemname: \"Program - PI\" AND ! Itemname: \":\"", parentTask.Project.UniqueID, EHPMReportViewType.AgileMainProject, FindContext); HPMTaskEnum SprintIDEnum = SessionManager.Session.TaskFind(FindContextData, EHPMTaskFindFlag.None); foreach (HPMUniqueID searchID in SprintIDEnum.m_Tasks) { HPMUniqueID SprintRefID = SessionManager.Session.TaskGetMainReference(searchID); Task sprint = Task.GetTask(SprintRefID); foreach (Task child in sprint.DeepChildren) { if (child.UniqueTaskID == parentTask.UniqueTaskID) { return(new SprintSearchCollection(child.UniqueID, SprintRefID)); } } } return(new SprintSearchCollection(null, null)); }
static void DoExport() { HPMUniqueID projId = HPMUtilities.FindProject(projectName); if (viewType == EHPMReportViewType.AgileBacklog) projId = SessionManager.Instance.Session.ProjectUtilGetBacklog(projId); else if (viewType == EHPMReportViewType.AllBugsInProject) projId = SessionManager.Instance.Session.ProjectUtilGetQA(projId); if (projId != null) { HPMString findString; if (searchSpec == SearchSpec.Report) { HPMUniqueID reportUserId = HPMUtilities.FindUser(reportUserName); if (reportUserId == null) throw new ArgumentException("Could not find the user " + reportUserName); HPMReport report = HPMUtilities.FindReport(projId, reportUserId, reportName); if (report == null) throw new ArgumentException("Could not find the report " + reportName + " for user " + reportUserName + " in project " + projectName); findString = SessionManager.Instance.Session.UtilConvertReportToFindString(report, projId, viewType); } else { findString = findQuery.Replace('\'', '"'); } HPMFindContext findContext = new HPMFindContext(); HPMFindContextData data = SessionManager.Instance.Session.UtilPrepareFindContext(findString, projId, viewType, findContext); HPMTaskEnum items = SessionManager.Instance.Session.TaskFind(data, EHPMTaskFindFlag.None); ExcelWriter excelWriter = new ExcelWriter(); if (items.m_Tasks.Length > 0) { EHPMProjectGetDefaultActivatedNonHidableColumnsFlag flag; if (viewType == EHPMReportViewType.ScheduleMainProject) flag = EHPMProjectGetDefaultActivatedNonHidableColumnsFlag.ScheduledMode; else if (viewType == EHPMReportViewType.AgileMainProject) flag = EHPMProjectGetDefaultActivatedNonHidableColumnsFlag.AgileMode; else flag = EHPMProjectGetDefaultActivatedNonHidableColumnsFlag.None; EHPMProjectDefaultColumn[] nonHidableColumns = SessionManager.Instance.Session.ProjectGetDefaultActivatedNonHidableColumns(projId, flag).m_Columns; if (viewType == EHPMReportViewType.ScheduleMainProject || viewType == EHPMReportViewType.AgileMainProject || viewType == EHPMReportViewType.AgileBacklog) { Array.Resize(ref nonHidableColumns, nonHidableColumns.Length + 1); nonHidableColumns[nonHidableColumns.Length - 1] = EHPMProjectDefaultColumn.ItemStatus; } EHPMProjectDefaultColumn[] activeBuiltinColumns = SessionManager.Instance.Session.ProjectGetDefaultActivatedColumns(projId).m_Columns; HPMProjectCustomColumnsColumn[] activeCustomColumns = SessionManager.Instance.Session.ProjectCustomColumnsGet(projId).m_ShowingColumns; ExcelWriter.Row row = excelWriter.AddRow(); foreach (EHPMProjectDefaultColumn builtinCol in nonHidableColumns) row.AddCell(HPMUtilities.GetColumnName(builtinCol)); foreach (EHPMProjectDefaultColumn builtinCol in activeBuiltinColumns) row.AddCell(HPMUtilities.GetColumnName(builtinCol)); foreach (HPMProjectCustomColumnsColumn customColumn in activeCustomColumns) row.AddCell(HPMUtilities.GetColumnName(projId, customColumn)); HPMColumnTextOptions options = new HPMColumnTextOptions(); options.m_bForDisplay = true; foreach (HPMUniqueID item in items.m_Tasks) { string description = SessionManager.Instance.Session.TaskGetDescription(item); HPMUniqueID itemRef; if (viewType == EHPMReportViewType.ScheduleMainProject || viewType == EHPMReportViewType.AgileMainProject) { itemRef = SessionManager.Instance.Session.TaskGetProxy(item); if (!itemRef.IsValid()) itemRef = SessionManager.Instance.Session.TaskGetMainReference(item); } else { itemRef = SessionManager.Instance.Session.TaskGetMainReference(item); } row = excelWriter.AddRow(); foreach (EHPMProjectDefaultColumn builtinCol in nonHidableColumns) { HPMColumn column = new HPMColumn(); column.m_ColumnType = EHPMColumnType.DefaultColumn; column.m_ColumnID = (uint)builtinCol; row.AddCell(SessionManager.Instance.Session.TaskRefGetColumnText(itemRef, column, options)); } foreach (EHPMProjectDefaultColumn builtinCol in activeBuiltinColumns) { HPMColumn column = new HPMColumn(); column.m_ColumnType = EHPMColumnType.DefaultColumn; column.m_ColumnID = (uint)builtinCol; row.AddCell(SessionManager.Instance.Session.TaskRefGetColumnText(itemRef, column, options)); } foreach (HPMProjectCustomColumnsColumn customColumn in activeCustomColumns) { string displayString; string dbValue = SessionManager.Instance.Session.TaskGetCustomColumnData(item, SessionManager.Instance.Session.UtilGetColumnHash(customColumn)); if (customColumn.m_Type == EHPMProjectCustomColumnsColumnType.DateTime || customColumn.m_Type == EHPMProjectCustomColumnsColumnType.DateTimeWithTime) { ulong ticksSince1970 = SessionManager.Instance.Session.UtilDecodeCustomColumnDateTimeValue(dbValue)*10; DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddTicks((long)ticksSince1970); if (customColumn.m_Type == EHPMProjectCustomColumnsColumnType.DateTime) displayString = dateTime.ToShortDateString(); else displayString = dateTime.ToString(); } else if (customColumn.m_Type == EHPMProjectCustomColumnsColumnType.Resources) { displayString =""; HPMResourceDefinitionList resourceList = SessionManager.Instance.Session.UtilDecodeCustomColumnResourcesValue(dbValue); for (int i = 0; i < resourceList.m_Resources.Length; i += 1) { HPMResourceDefinition resourceDefinition = resourceList.m_Resources[i]; switch (resourceDefinition.m_GroupingType) { case EHPMResourceGroupingType.AllProjectMembers: displayString += "All Project Members"; break; case EHPMResourceGroupingType.Resource: displayString += HPMUtilities.GetUserName(resourceDefinition.m_ID); break; case EHPMResourceGroupingType.ResourceGroup: displayString += HPMUtilities.GetGroupName(resourceDefinition.m_ID); break; } if (i < resourceList.m_Resources.Length - 1) displayString += ", "; } } else if (customColumn.m_Type == EHPMProjectCustomColumnsColumnType.DropList) { displayString = HPMUtilities.DecodeDroplistValue(dbValue, customColumn.m_DropListItems); } else if (customColumn.m_Type == EHPMProjectCustomColumnsColumnType.MultiSelectionDropList) { displayString = ""; string[] dbValues = dbValue.Split(new char[] { ';' }); for (int i = 0; i < dbValues.Length; i += 1) { displayString += HPMUtilities.DecodeDroplistValue(dbValues[i], customColumn.m_DropListItems); if (i < dbValues.Length - 1) displayString += ", "; } } else displayString = dbValue; row.AddCell(displayString); } } } excelWriter.SaveAsOfficeOpenXml(outputFileName); } else throw new ArgumentException("Could not find the project " + projectName); }
internal List<Task> Find(string findString, EHPMReportViewType viewType) { List<Task> found = new List<Task>(); HPMFindContext findContext = new HPMFindContext(); HPMFindContextData data = SessionManager.Session.UtilPrepareFindContext(findString, UniqueID, viewType, findContext); HPMTaskEnum items = SessionManager.Session.TaskFind(data, EHPMTaskFindFlag.None); foreach (HPMUniqueID taskID in items.m_Tasks) found.Add(Task.GetTask(taskID, viewType)); return found; }
protected void SetFindContext(HPMFindContext context, string projectid) { Session["FindContext" + projectid] = context; }
/// <summary> /// Builds a new find context by combining text search field and report from report drop list /// </summary> private void UpdateFindContext(HPMUniqueID projectID, string project, string userAndReport, string search) { if ((userAndReport == "0$$0") || (userAndReport == "0")) { if (search.Length > 0) { HPMFindContext fc = new HPMFindContext(); m_FindContexts[project] = m_VirtSession.UtilPrepareFindContext("Text(" + search + ")", projectID, EHPMReportViewType.AllBugsInProject, fc); } } else { string[] splitted = userAndReport.Split(new string[] { "$$" }, StringSplitOptions.None); HPMUniqueID reportuserid = new HPMUniqueID(Convert.ToInt32(splitted[0])); HPMUniqueID reportid = new HPMUniqueID(Convert.ToInt32(splitted[1])); HPMReport report = m_VirtSession.ProjectGetReport(projectID, reportuserid, reportid); HPMString FindString = m_VirtSession.UtilConvertReportToFindString(report, projectID, EHPMReportViewType.AllBugsInProject); if (search.Length > 0) FindString = "Text(" + search + ") AND " + FindString; HPMFindContext fc = new HPMFindContext(); m_FindContexts[project] = m_VirtSession.UtilPrepareFindContext(FindString, projectID, EHPMReportViewType.AllBugsInProject, fc); } }
public static SprintSearchCollection findSprintTaskID(Task parentTask) { HPMFindContext FindContext = new HPMFindContext(); HPMFindContextData FindContextData = SessionManager.Session.UtilPrepareFindContext("Itemname: \"Program - PI\" AND ! Itemname: \":\"", parentTask.Project.UniqueID, EHPMReportViewType.AgileMainProject, FindContext); HPMTaskEnum SprintIDEnum = SessionManager.Session.TaskFind(FindContextData, EHPMTaskFindFlag.None); foreach (HPMUniqueID searchID in SprintIDEnum.m_Tasks) { HPMUniqueID SprintRefID = SessionManager.Session.TaskGetMainReference(searchID); Task sprint = Task.GetTask(SprintRefID); foreach (Task child in sprint.DeepChildren) { if (child.UniqueTaskID == parentTask.UniqueTaskID) { return new SprintSearchCollection(child.UniqueID, SprintRefID); } } } return new SprintSearchCollection(null, null); }