public void TestCheckInningsPitched() { Db database = new Db(conn); bool passed = true; const int ITERATIONS = 3; Team roadTeam; Team homeTeam; for (int i = 0; i < ITERATIONS && passed; i++) { roadTeam = DatabaseTeamLoader.LoadTeam("New York", "Yankees", 1982, database); roadTeam.CapitalizeNames = true; roadTeam.ShowExtendedToString = true; homeTeam = DatabaseTeamLoader.LoadTeam("Oakland", "Athletics", 1982, database); homeTeam.CapitalizeNames = true; homeTeam.ShowExtendedToString = true; Game g = null; Venue venue = VenueManager.GetVenue(homeTeam.RawName); g = new Game(venue, roadTeam, homeTeam, Game.GenerateGameTime(), Convert.ToInt32(ConfigurationManager.GetConfigurationValue("CURRENT_NUM_INNINGS_REGULATION")), true); Logger logger = new Logger(String.Format($"{ConfigurationManager.GetConfigurationValue("GAME_FILE_DIRECTORY")}{g.Id}{ConfigurationManager.GetConfigurationValue("GAME_FILE_EXTENSION")}")); g.Announcer = new Announcer(Guid.NewGuid().ToString(), ConfigurationManager.GetConfigurationValue("ANNOUNCER_NAME"), logger);//make sure announcer commentary gets logged g.Announcer.Silent = false; g.Announcer.AnnounceToConsole(ConfigurationManager.GetConfigurationValue("GAME_TITLE")); g.Execute(); GameStatisticsDisplayer displayer = new GameStatisticsDisplayer(g.Scoreboard); Console.WriteLine(displayer.GetBoxScore()); g.Announcer.AnnounceToConsole(new GameStatisticsDisplayer(g.Scoreboard).GetFullBoxScore()); Console.WriteLine($"{g.Scoreboard.ToString()}"); logger.WriteToFile(); int totalHomeOuts = 0; int totalInnings = g.Scoreboard.InningScores.Length; foreach (Player p in g.HomeTeam.Roster.StartingPitchers) { totalHomeOuts += p.PitchingStatistics.TotalOuts; } foreach (Player p in g.HomeTeam.Roster.Bullpen) { totalHomeOuts += p.PitchingStatistics.TotalOuts; } Console.WriteLine($"TotalHomeOuts: {totalHomeOuts} - TotalInnings: {totalInnings}"); if (totalHomeOuts != (totalInnings * 3)) { passed = false; } } Assert.IsTrue(passed); }
public void TestGetMultipleFranchiseKeys() { database = new Db(conn); Dictionary <string, string> keys = DatabaseTeamLoader.GetMultipleKeys("New York", 2001, database); Assert.IsTrue(keys.Count == 2);//NYY and NYM Assert.IsTrue(keys.ContainsKey("NYY")); Assert.IsTrue(keys.ContainsKey("NYM")); }
/// <summary> /// Loads the team. /// </summary> /// <param name="searchTerm">string</param> /// <param name="secondPass">bool</param> /// <param name="capitalizeNames">If set to <c>true</c> capitalize names.</param> private static Team LoadTeam(string searchTerm, bool secondPass = false, bool capitalizeNames = true) { Team team = null; Db database = null; try { database = new Db(MainClass.conn); team = DatabaseTeamLoader.LoadTeamFromTeamID(searchTerm, year, database); if (team != null) { team.CapitalizeNames = capitalizeNames; return(team); } } catch (Exception ex) { //Eat this one ex.Message.ToString(); //Console.WriteLine($"Unable to load team with search term '{searchTerm}'"); //Console.WriteLine(ex.Message); } //First check to see if we get multiple teams if (!secondPass) { keys = DatabaseTeamLoader.GetMultipleKeys(searchTerm, year, database); Console.WriteLine($"Found {keys.Count} results for search term '{searchTerm} {year}.'"); teamChoices = new ConsoleMenu("Teams...", true); foreach (string key in keys.Keys) { Console.WriteLine(keys[key]); MenuChoice teamChoice = new MenuChoice(ChooseTeam, keys[key], true); teamChoices.AddItem(teamChoice); } teamChoices.Parent = displayTeamInformation; teamChoices.Run(); } else if (keys.Count == 2) { team = DatabaseTeamLoader.LoadTeamFromFranchiseID(searchTerm, year, database); team.CapitalizeNames = capitalizeNames; } else if (keys.Count == 1) { team = DatabaseTeamLoader.LoadTeamFromFranchiseID(searchTerm, year, database); team.CapitalizeNames = capitalizeNames; } return(team); }
/// <summary> /// Selects the world series based on the year provided. /// </summary> /// <param name="r">Runnable</param> public static void SelectWorldSeries(Runnable r) { Console.WriteLine("What is the year of the World Series?"); string year = Console.ReadLine(); int y; Team roadTeam, homeTeam; try { bool playSeries = true; Db database = new Db(MainClass.conn); y = Int32.Parse(year); Tuple <string, string> teamKeys = DatabaseWorldSeriesLoader.GetWorldSeriesTeams(y, database); roadTeam = DatabaseTeamLoader.LoadTeamByKey(teamKeys.Item1, y, database); if (roadTeam != null) { Console.WriteLine($"Found team '{roadTeam}' in the database."); roadTeam.CapitalizeNames = true; roadTeam.ShowExtendedToString = false; } else { playSeries = false; } homeTeam = DatabaseTeamLoader.LoadTeamByKey(teamKeys.Item2, y, database); if (homeTeam != null) { Console.WriteLine($"Found team '{homeTeam}' in the database."); homeTeam.CapitalizeNames = true; homeTeam.ShowExtendedToString = false; } else { playSeries = false; } if (playSeries) { Series worldSeries = new Series($"World Series {y}", roadTeam, homeTeam, 7, false, true, true, true); worldSeries.Execute(); } } catch (Exception ex) { Console.WriteLine("Error in input"); Console.WriteLine(ex.Message); } }
/// <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); }
public void TestRoundRobinEven() { Db database = new Db(conn); Team diamondbacks2001 = DatabaseTeamLoader.LoadTeamFromFranchiseID("ARI", 2001, database); Team mariners2001 = DatabaseTeamLoader.LoadTeamFromFranchiseID("SEA", 2001, database); Team giants2001 = DatabaseTeamLoader.LoadTeamFromFranchiseID("SFG", 2001, database); Team marlins2001 = DatabaseTeamLoader.LoadTeamFromFranchiseID("FLA", 2001, database); Team redsox2001 = DatabaseTeamLoader.LoadTeamFromFranchiseID("BOS", 2001, database); Team athletics2001 = DatabaseTeamLoader.LoadTeamFromFranchiseID("OAK", 2001, database); Team[] teams = { diamondbacks2001, mariners2001, giants2001, marlins2001, redsox2001, athletics2001 }; RoundRobin roundRobin = new RoundRobin(1, true, true, true, 500, teams); roundRobin.ParentDirectoryPath = System.IO.Path.Combine($"{ConfigurationManager.GetConfigurationValue("GAME_FILE_DIRECTORY")}"); roundRobin.RoundRobinProgressHandled += ReportProgress; roundRobin.Execute(); Assert.IsTrue(roundRobin.TotalGamesPlayed == 15); }
/// <summary> /// Loads the team. /// </summary> /// <param name="teamName">string</param> /// <param name="mascot">string</param> /// <param name="year">int</param> /// <param name="showExtendedToString">bool</param> /// <param name="capitalizeNames">If set to <c>true</c> capitalize names.</param> private static Team LoadTeam(string teamName, string mascot, int year, bool showExtendedToString = false, bool capitalizeNames = true) { Team team = null; try { Db database = new Db(MainClass.conn); team = DatabaseTeamLoader.LoadTeam(teamName, mascot, year, database); team.CapitalizeNames = capitalizeNames; team.ShowExtendedToString = showExtendedToString; } catch (Exception ex) { Console.WriteLine($"Unable to load team '{teamName}'"); Console.WriteLine(ex.Message); } return(team); }
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> /// Selects the world series based on the year provided. /// </summary> /// <param name="r">Runnable</param> public static void SelectWorldSeries(Runnable r) { Console.WriteLine("What year was the series?"); string year = Console.ReadLine(); int y = Int32.Parse(year); string round = string.Empty; Db database = new Db(MainClass.conn); SQLQueryResult result = DatabaseChampionshipSeriesLoader.GetSeriesInfo(y, database); if (result.DataTable.Rows.Count > 0) { StringBuilder sb = new StringBuilder("Which round would you like to play:\n"); foreach (System.Data.DataRow row in result.DataTable.Rows) { sb.AppendLine($"*{row["round"].ToString()}"); } Console.WriteLine(sb); round = Console.ReadLine(); Team roadTeam, homeTeam; bool playSeries = true; y = Int32.Parse(year); Tuple <string, string> teamKeys = GetTeamKeysByRound(round, result); roadTeam = DatabaseTeamLoader.LoadTeamFromTeamID(teamKeys.Item1, y, database); if (roadTeam != null) { Console.WriteLine($"Found team '{roadTeam}' in the database."); roadTeam.CapitalizeNames = true; roadTeam.ShowExtendedToString = false; } else { playSeries = false; } //homeTeam = DatabaseTeamLoader.LoadTeamByKey(teamKeys.Item2, y, database); homeTeam = DatabaseTeamLoader.LoadTeamFromTeamID(teamKeys.Item2, y, database); if (homeTeam != null) { Console.WriteLine($"Found team '{homeTeam}' in the database."); homeTeam.CapitalizeNames = true; homeTeam.ShowExtendedToString = false; } else { playSeries = false; } if (playSeries) { Series worldSeries = new Series($"{round} {y}", roadTeam, homeTeam, 7, false, false, true, true); worldSeries.ParentDirectoryPath = System.IO.Path.Combine($"{ConfigurationManager.GetConfigurationValue("GAME_FILE_DIRECTORY")}"); worldSeries.Execute(); } } else { Console.WriteLine($"There was no postseason in {year}."); } }