public void TestDatabaseDivisionLoaderParts() { database = new Db(conn); Team yankees2001 = DatabaseTeamLoader.LoadTeam("New York", "Yankees", "NYA", 2001, database); Team diamondbacks2001 = DatabaseTeamLoader.LoadTeam("Arizona", "Diamondbacks", "ARI", 2001, database); Team mariners2001 = DatabaseTeamLoader.LoadTeam("Seattle", "Mariners", "SEA", 2001, database); Team orioles2001 = DatabaseTeamLoader.LoadTeam("Baltimore", "Orioles", "BAL", 2001, database); Team redsox2001 = DatabaseTeamLoader.LoadTeam("Boston", "Red Sox", "BOS", 2001, database); Team astros2001 = DatabaseTeamLoader.LoadTeam("Houston", "Astros", "HOU", 2001, database); Team[] teams = { yankees2001, diamondbacks2001, mariners2001 }; Team[] teams2 = { orioles2001, redsox2001, astros2001 }; TeamGroupTree nationalLeague2001 = new TeamGroupTree("NL2001", "National League 2001"); nationalLeague2001.Add(new TeamGroup("NLW2001", "National League West 2001", teams)); nationalLeague2001.Add(new TeamGroup("NLE2001", "National League East 2001", teams2)); Assert.IsTrue(nationalLeague2001.GetTotalItemCount <Team>() == 6); Console.WriteLine(nationalLeague2001[0]); Console.WriteLine(nationalLeague2001[1]); Console.WriteLine(nationalLeague2001); }
/// <summary> /// Loads the team group. /// </summary> /// <returns>TeamGroup</returns> /// <param name="leagueName">string</param> /// <param name="year">int</param> /// <param name="database">Db</param> /// <param name="seriesLength">int</param> public static TeamGroupTree LoadRoot(string leagueName, int year, Db database, int seriesLength = 3) { TeamGroupTree league = null; Dictionary <string, TeamGroup> divisions = new Dictionary <string, TeamGroup>(); SQLStoredProcedure sp = StoredProcedureManager.Get("GetDivisionInfo"); sp.Parameters = new object[] { leagueName, year }; SQLQueryResult result = database.ExecuteQuery(sp.Text); DataTable teamGroupInfo = result.DataTable; string leagueID = teamGroupInfo.Rows[0]["lgID"].ToString(); foreach (DataRow row in teamGroupInfo.Rows) { string teamID = row["teamID"].ToString(); string teamName = row["name"].ToString(); string divID = row["divID"].ToString(); TeamGroup group = null; Team team = null; team = DatabaseTeamLoader.LoadTeam(teamName, year, database); if (!divisions.ContainsKey(divID)) { group = new TeamGroup(divID, divID); divisions.Add(divID, group); if (!group.Contains(team)) { group.Add(team); } } else { divisions[divID].Add(team); } Console.WriteLine($"Added {team} to division '{divID}'"); System.Threading.Thread.Sleep(150); } league = new TeamGroupTree(leagueID, leagueName, seriesLength); foreach (TeamGroup division in divisions.Values) { league.Add(division); Console.WriteLine($"Added division '{division.Name}' to league '{league.Name}'"); System.Threading.Thread.Sleep(150); } return(league); }