private void findPreviouslyImportedTickets()
{
previouslyImported = new Dictionary<string, WorkItem>();
var workItemStore = (WorkItemStore) tfs.GetService(typeof (WorkItemStore));
var query = string.Format("Select [ID] From WorkItems where [Team Project] = '{0}' AND [Hyperlink Count] > 0", project);
var queryResults = workItemStore.Query(query);
if (queryResults.Count > 0)
{
var externalRef = externalReferenceTag + " [";
var progressNotifer = new ProgressNotifier(OnPercentComplete, queryResults.Count);
foreach (WorkItem workItem in queryResults)
{
var hyperLinks = workItem.Links.OfType<Hyperlink>();
foreach (var link in hyperLinks)
{
if (link.Comment.IndexOf(externalRef, StringComparison.Ordinal) == 0)
{
var toExtract = (link.Comment.Length - externalRef.Length) - 1;
var sourceId = link.Comment.Substring(externalRef.Length, toExtract);
onDetailedProcessing(string.Format("Retrieving previously imported tickets ({0}).", sourceId));
previouslyImported[sourceId] = workItem;
break;
}
progressNotifer.UpdateProgress();
}
}
}
}