Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TFS 2012 API Set TeamSettings Programmatically

Tags:

c#

tfs

tfs-sdk

Is it possible to set the TeamSettings Programmatically?

var teamConfig = _tfs.GetService<TeamSettingsConfigurationService>();
                var css = _tfs.GetService<ICommonStructureService4>();

                var configs = teamConfig.GetTeamConfigurationsForUser(new[] { _selectedTeamProject.Uri });
                var team = configs.Where(c => c.TeamName == "Demo").FirstOrDefault() as TeamConfiguration;

The above code gives me the Team Configuration for the team Demo. Look at the TeamSettings, it contains the property BacklogIterationPath, CurrentIterationPath, IterationPaths. How can these be set programmatically?

enter image description here

like image 575
Tarun Arora Avatar asked Oct 11 '12 20:10

Tarun Arora


1 Answers

I think I have solved it myself.

        // Set up default team sprint date and time
        var teamConfig = _tfs.GetService<TeamSettingsConfigurationService>();
        var css = _tfs.GetService<ICommonStructureService4>();

        string rootNodePath = string.Format("\\{0}\\Iteration\\Release 1\\Sprint 1", _selectedTeamProject.Name);
        var pathRoot = css.GetNodeFromPath(rootNodePath);

        css.SetIterationDates(pathRoot.Uri, DateTime.Now.AddDays(-5), DateTime.Now.AddDays(7));

        var configs = teamConfig.GetTeamConfigurationsForUser(new[] { _selectedTeamProject.Uri });
        var team = configs.Where(c => c.TeamName == "Demo").FirstOrDefault();

        var ts = team.TeamSettings;
        ts.BacklogIterationPath = string.Format(@"{0}\Release 1", _selectedTeamProject.Name);
        ts.IterationPaths = new string[] { string.Format(@"{0}\Release 1\Sprint 1", _selectedTeamProject.Name), string.Format(@"{0}\Release 1\Sprint 2", _selectedTeamProject.Name) };

        var tfv = new TeamFieldValue();
        tfv.IncludeChildren = true;
        tfv.Value = _selectedTeamProject.Name;
        ts.TeamFieldValues = new []{tfv};

        teamConfig.SetTeamSettings(team.TeamId, ts);

This sets up,

1. Iteration Start and Finish Date for an Iteration
2. Backlog Iteration Path for the team Demo
3. Sets up Iteration Paths for the team Demo
4. Sets up the default Area Path for the team Demo

HTH Cheers, Tarun

like image 172
Tarun Arora Avatar answered Oct 03 '22 19:10

Tarun Arora