in src/VstsDemoBuilder/Services/ProjectService.cs [1063:1205]
private void CreateTeams(Project model, string teamsJSON, VstsRestAPI.Configuration _projectConfig, string id, string teamAreaJSON)
{
try
{
string jsonTeams = GetJsonFilePath(model.IsPrivatePath, model.PrivateTemplatePath, model.SelectedTemplate, teamsJSON);
if (File.Exists(jsonTeams))
{
Teams objTeam = new Teams(_projectConfig);
jsonTeams = model.ReadJsonFile(jsonTeams);
JArray jTeams = JsonConvert.DeserializeObject<JArray>(jsonTeams);
JContainer teamsParsed = JsonConvert.DeserializeObject<JContainer>(jsonTeams);
//get Backlog Iteration Id
string backlogIteration = objTeam.GetTeamSetting(model.ProjectName);
//get all Iterations
TeamIterationsResponse.Iterations iterations = objTeam.GetAllIterations(model.ProjectName);
foreach (var jTeam in jTeams)
{
string teamIterationMap = GetJsonFilePath(model.IsPrivatePath, model.PrivateTemplatePath, model.SelectedTemplate, "TeamIterationMap.json");
if (File.Exists(teamIterationMap))
{
//BEGIN - Mapping only given iterations for team in Team Iteration Mapping file
if (!string.IsNullOrEmpty(teamIterationMap))
{
string data = model.ReadJsonFile(teamIterationMap);
TeamIterations.Map iterationMap = new TeamIterations.Map();
iterationMap = JsonConvert.DeserializeObject<TeamIterations.Map>(data);
if (iterationMap.TeamIterationMap.Count > 0)
{
foreach (var teamMap in iterationMap.TeamIterationMap)
{
if (teamMap.TeamName.ToLower() == jTeam["name"].ToString().ToLower())
{
// AS IS
GetTeamResponse.Team teamResponse = objTeam.CreateNewTeam(jTeam.ToString(), model.ProjectName);
if (!(string.IsNullOrEmpty(teamResponse.id)))
{
string areaName = objTeam.CreateArea(model.ProjectName, teamResponse.name);
string updateAreaJSON = GetJsonFilePath(model.IsPrivatePath, model.PrivateTemplatePath, model.SelectedTemplate, teamAreaJSON);
//updateAreaJSON = string.Format(templatesFolder + @"{0}\{1}", model.SelectedTemplate, teamAreaJSON);
if (File.Exists(updateAreaJSON))
{
updateAreaJSON = model.ReadJsonFile(updateAreaJSON);
updateAreaJSON = updateAreaJSON.Replace("$ProjectName$", model.ProjectName).Replace("$AreaName$", areaName);
bool isUpdated = objTeam.SetAreaForTeams(model.ProjectName, teamResponse.name, updateAreaJSON);
}
bool isBackLogIterationUpdated = objTeam.SetBackLogIterationForTeam(backlogIteration, model.ProjectName, teamResponse.name);
if (iterations.count > 0)
{
foreach (var iteration in iterations.value)
{
if (iteration.structureType == "iteration")
{
foreach (var child in iteration.children)
{
if (teamMap.Iterations.Contains(child.name))
{
bool isIterationUpdated = objTeam.SetIterationsForTeam(child.identifier, teamResponse.name, model.ProjectName);
}
}
}
}
}
}
// TILL HERE
}
}
}
}
// END
}
else
{
string isDefault = jTeam["isDefault"] != null ? jTeam["isDefault"].ToString() : string.Empty;
if (isDefault == "false" || isDefault == "")
{
GetTeamResponse.Team teamResponse = objTeam.CreateNewTeam(jTeam.ToString(), model.ProjectName);
if (!(string.IsNullOrEmpty(teamResponse.id)))
{
string areaName = objTeam.CreateArea(model.ProjectName, teamResponse.name);
string updateAreaJSON = GetJsonFilePath(model.IsPrivatePath, model.PrivateTemplatePath, model.SelectedTemplate, teamAreaJSON);
//updateAreaJSON = string.Format(templatesFolder + @"{0}\{1}", model.SelectedTemplate, teamAreaJSON);
if (File.Exists(updateAreaJSON))
{
updateAreaJSON = model.ReadJsonFile(updateAreaJSON);
updateAreaJSON = updateAreaJSON.Replace("$ProjectName$", model.ProjectName).Replace("$AreaName$", areaName);
bool isUpdated = objTeam.SetAreaForTeams(model.ProjectName, teamResponse.name, updateAreaJSON);
}
bool isBackLogIterationUpdated = objTeam.SetBackLogIterationForTeam(backlogIteration, model.ProjectName, teamResponse.name);
if (iterations.count > 0)
{
foreach (var iteration in iterations.value)
{
if (iteration.structureType == "iteration")
{
foreach (var child in iteration.children)
{
bool isIterationUpdated = objTeam.SetIterationsForTeam(child.identifier, teamResponse.name, model.ProjectName);
}
}
}
}
}
}
if (!(string.IsNullOrEmpty(objTeam.LastFailureMessage)))
{
AddMessage(id.ErrorId(), "Error while creating teams: " + objTeam.LastFailureMessage + Environment.NewLine);
}
else
{
AddMessage(id, string.Format("{0} team(s) created", teamsParsed.Count));
}
if (model.SelectedTemplate.ToLower() == "smarthotel360")
{
string updateAreaJSON = GetJsonFilePath(model.IsPrivatePath, model.PrivateTemplatePath, model.SelectedTemplate, "UpdateTeamArea.json");
//updateAreaJSON = string.Format(templatesFolder + @"{0}\{1}", model.SelectedTemplate, "UpdateTeamArea.json");
if (File.Exists(updateAreaJSON))
{
updateAreaJSON = model.ReadJsonFile(updateAreaJSON);
updateAreaJSON = updateAreaJSON.Replace("$ProjectName$", model.ProjectName);
bool isUpdated = objTeam.UpdateTeamsAreas(model.ProjectName, updateAreaJSON);
}
}
}
}
}
}
catch (Exception ex)
{
logger.Info(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + "\t" + ex.Message + "\t" + "\n" + ex.StackTrace + "\n");
AddMessage(id.ErrorId(), "Error while creating teams: " + ex.Message);
}
}