Я разрабатываю приложение Windows, которое выполняет некоторые общие задачи TFS с использованием API бета-версии 2010 года (например, создание новых командных проектов, новых рабочих элементов, выборочной сборки и т. Д.).Рабочие процессы перехода состояний рабочего элемента
В процессе редактирования существующих рабочих элементов я должен иметь возможность автоматически устанавливать значения поля «Причина» в соответствии с изменением состояния WI (имитационная Visual Studio). (например). Когда я редактирую ошибку, когда состояние изменяется с Активного на Разрешенное, причина по умолчанию «Исправлена» и аналогично по умолчанию Reason = «Отложенная», когда состояние переходит из Активного в Закрытое. (Как определено в XML-файле определения типа рабочего элемента.) Этот переход легко захватывается и реализуется внутри простого обработчика событий в форме, так как начальное состояние будет активным, когда ошибка будет отредактирована впервые.
Я хочу знать, как реализовать оставшиеся переходы, такие как «Разрешено к закрытию» («Причина = Исправлено»), «Разрешено к активному» («Причина = Тест не выполнен/Не исправлен») или «Закрыто до Активного» (Причина = Реактивированная/Регрессия).
Я знаю, что существует метод WorkItem.GetNextState (current_state, action), но это не помогает, поскольку для этого требуется определенное действие.
То, что я сделал до сих пор показано ниже:
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];
}
}
Может кто-нибудь показать, как обрабатывать эти события на форме?
Thanks, Tara.