public override void OnTaskChangeCustomColumnData(TaskChangeCustomColumnDataEventArgs e) { if (initializationOK) { if (e.Data.m_ColumnHash == trackedColumn.m_Hash) { Task task = Task.GetTask(e.Data.m_TaskID); if (projects.Contains(task.Project) && projectViews.Contains(task.ProjectView)) { HPMSDKInternalData hid = GetCustomColumn(task); task.SetCustomColumnValue(trackingColumn, DateTimeValue.FromHpmDateTime(task, trackingColumn, HPMUtilities.HPMNow())); writeHIDStatus(task); } } } }
private void DoUpdateFromHistory(Task task, HPMDataHistory history) { // Ensure that we get the custom column of the right project HPMProjectCustomColumnsColumn actualCustomColumn = task.ProjectView.GetCustomColumn(trackingColumn.m_Name); DateTimeValue storedValue = (DateTimeValue)task.GetCustomColumnValue(actualCustomColumn); // ToInt64 will return the value as microseconds since 1970 Jan 1 ulong storedHpmTime = storedValue.ToHpmDateTime(); if (history.m_Latests.m_Time > storedHpmTime) { foreach (HPMDataHistoryEntry entry in history.m_HistoryEntries) { // Check if it is the status field if (entry.m_FieldID == 15) { if (entry.m_Time > storedHpmTime) { storedHpmTime = entry.m_Time; task.SetCustomColumnValue(trackingColumn, DateTimeValue.FromHpmDateTime(task, actualCustomColumn, storedHpmTime)); } } } } }