Получение ссылки на рабочие элементы с использованием TFS C # API - PullRequest
0 голосов
/ 29 мая 2019

Я новичок в TFS API и использую код C #, как описано в: https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/client-libraries/samples?view=azure-devops

Мне удалось запустить код на моем тестовом сервере TFS и довольно легко получить результат запроса.Однако, когда я пытаюсь получить детали ссылок на рабочие элементы, я не могу найти правильный способ сделать это.Когда я превращаюсь в 1 объект во время выполнения кода, я вижу, что атрибут Links имеет значение null, в то время как «реальный» рабочий элемент в TFS как связанный WI как родительский.Любая идея, как я могу пройти через ссылки WI и получить связанные детали WI?Большое спасибо заранее: -)

1 Ответ

1 голос
/ 29 мая 2019

Вы должны установить атрибут расширения в GetWorkItemAsync:

GetWorkItemAsync(Id, expand: WorkItemExpand.Relations).Result

Вы можете найти все ссылки в списке отношений. Ссылка не содержит идентификатор, но вы можете извлечь его из ссылки URL. Родительский тип System.LinkTypes.Hierarchy-Reverse значение в элементе Rel. Пример списка отношений:

var wi = GetWorkItemWithRelations(wiId);

if (wi.Relations != null)
    {
        foreach (var wiLink in wi.Relations)
        Console.WriteLine("{0,-40}: {1}", wiLink.Rel, ExtractWiIdFromUrl(wiLink.Url));
    }

static int ExtractWiIdFromUrl(string Url)
{
    int id = -1;

    string splitStr = "_apis/wit/workItems/";

    if (Url.Contains(splitStr))
    {
        string [] strarr = Url.Split(new string[] { splitStr }, StringSplitOptions.RemoveEmptyEntries);

        if (strarr.Length == 2 && int.TryParse(strarr[1], out id))
                return id;
    }

    return id;
}

Дополнительные типы ссылок вы можете найти здесь: https://docs.microsoft.com/en-us/azure/devops/boards/queries/link-type-reference?view=azure-devops&viewFallbackFrom=vsts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...