Belirli bir ürün biriktirme kimliği verildiğinde, programlı olarak PBI'ye alt öğe olan görevlerin bir listesini almak istiyorum.TFS API'sindeki Ürün İş Listesi Öğesinden çocuk görevleri listesi nasıl alınır?
Görevde "Ebeveyn PBI Kimliği" yazan bir alan olmadığını biliyorum. Çalışmakta olan bir kod sürümüm var, ancak gerçekten çok yavaş, çünkü filtreleme bölümümün bir kısmını gerçekleştiriyorum.
Şu anda nasıl olduğumu bakınız: standart olarak
string wiqlQuery =
string.Format(
"Select ID, [Remaining Work], State " +
"from WorkItems " +
"where (([Work Item Type] = 'Task')" +
" AND ([Iteration Path] = '{0}')" +
" AND (State <> 'Removed')" +
" AND (State <> 'Done')) ",
sprint, storyId);
// execute the query and retrieve a collection of workitems
WorkItemCollection workItems = wiStore.Query(wiqlQuery);
if (workItems.Count <= 0)
return null;
var result = new List<TaskViewModel>();
foreach (WorkItem workItem in workItems)
{
var relatedLink = workItem.Links[0] as RelatedLink;
if (relatedLink == null) continue;
if (relatedLink.RelatedWorkItemId != storyId) continue;
Field remWorkField = (from field in workItem.Fields.Cast<Field>()
where field.Name == "Remaining Work"
select field).FirstOrDefault();
if (remWorkField == null) continue;
if (remWorkField.Value == null) continue;
var task = new TaskViewModel
{
Id = workItem.Id,
ParentPbi = relatedLink.RelatedWorkItemId,
RemainingWork = (double) remWorkField.Value,
State = workItem.State
};
result.Add(task);
}
return result;
mı olmalı Sorgu oluşturucu GUI'de sorgu oluşturmaya çalıştınız mı? Bunu yapabilir ve sonra da sorguyu bir dosya olarak kaydederseniz, dosya iyi bir wiql deyimi içerecektir. Sorguyu wiql'de yapabilirseniz, istemci API'sinde bunu yapmak yerine arka planda tek bir sql sorgusuna dönüşecektir. – bryanmac
Yöntem, bir yüklemeyi kabul ettiği sürece 'workItem.Fields.Cast() .FirstOrDefault (f => field.Name ==" Kalan İş ")' i kullanabilirsiniz. Şu anda 'Nerede (..). FirstOrDefault() 'yi kullanıyorsunuz. –
abatishchev
wistore nedir? –