J Cooper
J Cooper

Reputation: 17051

Programmatically add new iteration in TFS

I can manually add a new iteration to a team project in TFS by right clicking on the project and going to Team Project Settings > Areas and Iterations > Iterations tab.

Is there an example out there of how to do this programmatically using their API?

Thanks!

Upvotes: 5

Views: 6348

Answers (2)

taylonr
taylonr

Reputation: 10790

Does this tutorial solve your problem? http://blogs.microsoft.co.il/blogs/shair/archive/2009/01/30/tfs-api-part-10-add-area-iteration-programmatically.aspx

Google-Fu "tfs api add iteration"

From glancing at his code, (and using TFS) it looks like iterations are getting treated as hierarchies. That's why you see things like "Release1\Sprint2" etc... you can have them nested deep... deep down they're probably just a path and that's why he's using the add path etc

Upvotes: 3

J Cooper
J Cooper

Reputation: 17051

After some experimentation based on taylonr's link, here's what I came up with as a minimal solution for adding an iteration, in case any one else runs into this:

    public void AddIteration(string projectName, string iterationName)
    {
        using (var tfsCollection = new TfsTeamProjectCollection(new Uri(tfsServerUrl), getTfsCredentials()))
        {
            tfsCollection.Authenticate();
            var css = tfsCollection.GetService<ICommonStructureService>();
            string rootNodePath = string.Format("\\{0}\\Iteration", projectName);
            var pathRoot = css.GetNodeFromPath(rootNodePath);
            css.CreateNode(iterationName, pathRoot.Uri);
        }
    }

Upvotes: 12

Related Questions