создать итерацию с дочерними узлами в Azure DevOps (VSTS), используя c # - PullRequest
1 голос
/ 13 мая 2019

Я пишу программу, которая создаст итерацию со своими дочерними узлами.Он создает родительский узел, но ни один из дочерних узлов.Ниже приведен мой пример кода.

Я получил справку по ссылке: https://github.com/microsoft/azure-devops-dotnet-samples/blob/master/ClientLibrary/Samples/WorkItemTracking/ClassificationNodesSample.cs

WorkItemClassificationNode iterationNode = new WorkItemClassificationNode()
{
    Name = "Parent Iteration",
    StructureType = TreeNodeStructureType.Iteration,
    Children = new List<WorkItemClassificationNode>()
    {
        new WorkItemClassificationNode(){ Name="child 1", StructureType= TreeNodeStructureType.Iteration },
        new WorkItemClassificationNode(){ Name="child 2", StructureType= TreeNodeStructureType.Iteration },
    },
    Attributes = new Dictionary<string, Object>()
    {
        { "startDate", DateTime.Today },
        { "finishDate", DateTime.Today.AddDays(7) },
    }

};
witClient.CreateOrUpdateClassificationNodeAsync(iterationNode, Constants.TEAM_PROJECT, TreeStructureGroup.Iterations);

Я мог создать только «Итерацию родителей».Необходимо создать его так: «Итерация родителя \ Child 1» и «Итерация родителя \ Child 2»

1 Ответ

2 голосов
/ 13 мая 2019

Вы должны создать каждую итерацию (сначала родитель, потом ребенок).Это моя функция для создания итерации:

    static WorkItemClassificationNode CreateIteration(string TeamProjectName, string IterationName, DateTime? StartDate = null, DateTime? FinishDate = null, string ParentIterationPath = null)
    {
        WorkItemClassificationNode newIteration = new WorkItemClassificationNode();
        newIteration.Name = IterationName;

        if (StartDate != null && FinishDate != null)
        {
            newIteration.Attributes = new Dictionary<string, object>();
            newIteration.Attributes.Add("startDate", StartDate);
            newIteration.Attributes.Add("finishDate", FinishDate);
        }

        return WitClient.CreateOrUpdateClassificationNodeAsync(newIteration, TeamProjectName, TreeStructureGroup.Iterations, ParentIterationPath).Result;
    }

var newNode = CreateIteration(TeamProjectName, @"R2");
newNode = CreateIteration(TeamProjectName, @"R2.1", ParentIterationPath: @"R2");
newNode = CreateIteration(TeamProjectName, @"Ver1", new DateTime(2019, 1, 1), new DateTime(2019, 1, 7), @"R2\R2.1");

Пример использования здесь: https://github.com/ashamrai/TFRestApi/blob/master/08.TFRestApiAppAreasAndIterations/TFRestApiApp/Program.cs

...