Я пытаюсь спасти Рабочий элемент TFS программно, но всегда получаю исключение:
TF237124: Work Item is not ready to save
Теперь я понимаю, о чем это говорит мне - что в рабочем элементе отсутствует обязательное поле или подобное - и мой код ожидает этого, вызывая:
ArrayList ValidationResult = wi.Validate();
перед сохранением . Однако мой ArrayList не содержит элементов после этого вызова.
Я пробовал войти в веб-интерфейс TFS с теми же учетными данными и создать рабочий элемент таким образом, который отлично работает.
Как узнать, почему мой рабочий элемент не сохраняется? Вот мой код:
// get a reference to the team project collection (authenticate as generic service account)
using (var tfs = new TfsTeamProjectCollection(tfsuri, new System.Net.NetworkCredential("My_User", "password")))
{
tfs.EnsureAuthenticated();
var workItemStore = GetWorkItemStore(tfs);
// create a new work item
WorkItem wi = new WorkItem(GetWorkItemType(type, workItemStore));
{
//Values are supplied as a KVP - Field Name/Value
foreach (KeyValuePair<string,string> kvp in values)
{
if (wi.Fields.Contains(kvp.Key))
{
wi.Fields[kvp.Key].Value = kvp.Value;
}
}
ValidationResult = wi.Validate();
}
if (ValidationResult.Count == 0)
{
wi.State = wi.GetNextState("Microsoft.VSTS.Actions.Checkin");
wi.Save();
return wi.Id;
}
else
{
return 0;
}
}
}