我正在開發一個Windows應用程序,它使用2010 Beta 2 API執行一些常見的TFS任務(如創建新的團隊項目,新工作項目,選擇性構建等)。工作項目狀態的轉換工作流程
在編輯現有的工作項目的過程中,我應該能夠根據WI(模擬-ING的Visual Studio)的狀態變化自動設定「的原因」字段的值。 (例如) - 當我編輯一個bug時,當狀態從活動變爲已解決時,默認原因是'固定',類似地,當狀態從活動變爲關閉時,默認原因='延遲'。 (如工作項類型定義xml文件中所定義的。)該轉換很容易在窗體上的簡單事件處理程序中捕獲和實現,因爲當首次編輯Bug時,初始狀態將爲「活動」。
我想知道如何實現剩下的轉換,如解決關閉(原因=固定),解決到活動(原因=測試失敗/不固定)或關閉到活動(原因=重新激活/迴歸)。
我知道有一個叫WorkItem.GetNextState(current_state,動作)方法,但是這並沒有幫助,因爲它需要一個具體的行動。
我迄今所做如下圖所示:
void cmbBugState_SelectedIndexChanged(object sender, EventArgs e)
{
//private enum bugWorkFlows{"Fixed","Deferred","Duplicate","As Designed","Cannot Reproduce","Obsolete","Test Failed","Not Fixed","Reactivated","Regression"}
string[] activeToResolvedReasons = { "Fixed", "Deferred", "Duplicate", "As Designed", "Cannot Reproduce", "Obsolete" };
string[] resolvedToActiveReasons = { "Test Failed", "Not fixed" };
string[] resolvedToClosedReasons = activeToResolvedReasons;
string[] closedToActiveReasons = { "Reactivated", "Regression" };
string[] activeToClosedReasons = activeToResolvedReasons;
cmbBugReason.Items.AddRange(activeToResolvedReasons);
// Set the default reason according to change of state of the work item.
if (cmbBugState.SelectedItem.ToString() == "Resolved")
{
cmbBugReason.Enabled = true;
cmbBugReason.SelectedItem = activeToResolvedReasons[0];
}
if (cmbBugState.SelectedItem.ToString() == "Closed")
{
cmbBugReason.Enabled = true;
cmbBugReason.SelectedItem = activeToResolvedReasons[1];
}
}
誰能告訴如何處理的形式對這些事件?
謝謝, 塔拉。