Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        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}.");
            }
        }