in src/VstsRestAPI/WorkItemAndTracking/ClassificationNodes.cs [141:240]
public bool UpdateIterationDates(string projectName, string templateType, string selectedTemplateName, string teamIterationMapJson)
{
try
{
// team iteration changes
if (File.Exists(teamIterationMapJson))
{
teamIterationMapJson = File.ReadAllText(teamIterationMapJson);
if (!string.IsNullOrEmpty(teamIterationMapJson))
{
string project = projectName;
DateTime startDate = DateTime.Today;
DateTime endDate = DateTime.Today.AddDays(12);
TeamIterations.Map iterationMaps = new TeamIterations.Map();
iterationMaps = JsonConvert.DeserializeObject<TeamIterations.Map>(teamIterationMapJson);
if (iterationMaps.TeamIterationMap.Count > 0)
{
int i = 0;
foreach (var iterationTeam in iterationMaps.TeamIterationMap)
{
if (i % 2 == 1)
{
startDate = DateTime.Today;
endDate = DateTime.Today.AddDays(18);
}
foreach (var iteration in iterationTeam.Iterations)
{
Dictionary<string, string[]> sprint_dictionary = new Dictionary<string, string[]>();
sprint_dictionary.Add(iteration, new string[] { startDate.ToShortDateString(), endDate.ToShortDateString() });
foreach (var key in sprint_dictionary.Keys)
{
UpdateIterationDates(project, key, startDate, endDate);
if (i % 2 == 1)
{
startDate = endDate.AddDays(1);
endDate = startDate.AddDays(18);
}
else
{
startDate = endDate.AddDays(1);
endDate = startDate.AddDays(12);
}
}
}
i++;
}
}
}
}
else
{
string project = projectName;
DateTime startDate = DateTime.Today.AddDays(-22);
DateTime endDate = DateTime.Today.AddDays(-1);
Dictionary<string, string[]> sprint_dictionary = new Dictionary<string, string[]>();
if (string.IsNullOrWhiteSpace(templateType) || templateType.ToLower() == TemplateType.Scrum.ToString().ToLower())
{
for (int i = 1; i <= 6; i++)
{
sprint_dictionary.Add("Sprint " + i, new string[] { startDate.ToShortDateString(), endDate.ToShortDateString() });
}
}
else if (string.IsNullOrWhiteSpace(templateType) || templateType.ToLower() == TemplateType.Basic.ToString().ToLower())
{
for (int i = 1; i <= 1; i++)
{
sprint_dictionary.Add("Sprint " + i, new string[] { startDate.ToShortDateString(), endDate.ToShortDateString() });
}
}
else
{
for (int i = 1; i <= 3; i++)
{
sprint_dictionary.Add("Iteration " + i, new string[] { startDate.ToShortDateString(), endDate.ToShortDateString() });
}
}
foreach (var key in sprint_dictionary.Keys)
{
UpdateIterationDates(project, key, startDate, endDate);
startDate = endDate.AddDays(1);
endDate = startDate.AddDays(21);
}
}
return true;
}
catch (OperationCanceledException opr)
{
logger.Info(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t OperationCanceledException: " + opr.Message + "\n" + opr.StackTrace + "\n");
}
catch (Exception ex)
{
logger.Debug(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + "\t" + ex.Message + "\t" + "\n" + ex.StackTrace + "\n");
}
return false;
}