2016-08-01 1 views
0

У меня есть следующая ситуация, и я стоп.TFS 2015. Получить CollectionName по артикулу

Я использую классы Microsoft.TeamFoundation для получения рабочих элементов из сохраненного запроса с помощью C#. Я знаю имя сервера, имя проекта и имя сохраненного запроса. Поэтому я могу выполнить сохраненный запрос и получить все WorkItems.

Но мне нужно создать прямую ссылку на этот товар. Согласно документации, эта ссылка должна быть как

http:// ServerName:8080/tfs/CollectionName/ProjectName/_workitems/edit/Id 

Итак, перед выполнением запроса, я знаю ServerName, Projectname и работает идентификатор элемента. Но я не могу найти ProjectName где угодно.

Так что мой вопрос. Как узнать имя ServerName, ProjectName, WorkItemId и сохраненное имя запроса, получить имя CollectionName?

Or. Как создать ссылку на рабочий элемент, зная ItemId?

P.S. GetArtifactUrl - неправильный путь.

Спасибо за помощь!

+0

Какой URL вы обычно используете при просмотре, чтобы видеть рабочие элементы, когда вы нормально работаете с этим проектом команды (подскажите, смотрите на этот ур)? Или вы пытаетесь создать что-то, что ищет во всех коллекциях Team Project? –

+0

Вопрос может быть интерпретирован как минимум тремя способами. Вы пытаетесь это сделать на сервере TFS или на Visual Studio Team Services? –

+0

Я использую on-prem сервер TFS – Vitalii

ответ

1

Боюсь, что такого API не существует для этого. Тем не менее, в качестве обходного пути, вы можете перечислить названия всех коллекции, через клиентский API, например, как показано ниже:

 Uri configurationServerUri = new Uri(URL); 
     TfsConfigurationServer configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(configurationServerUri); 
            ITeamProjectCollectionService tpcService = configurationServer.GetService<ITeamProjectCollectionService>(); 

    foreach (TeamProjectCollection tpc in tpcService.GetCollections()) 
           { 
            ListCollection.Add(tpc.Name); 
           } 

Больше способов для справки:

+0

Для этого решения требуется еще один lvl прав доступа. Любая другая идея? – Vitalii

+0

Возможно, вы можете попробовать найти его через базу данных TFS. –

+0

@Patrick: не требуется ли для прохождения нескольких баз данных, поскольку tpc связан с базами данных? –