public bool UpdateIterationDates()

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;
        }