Beispiel #1
0
        public static PLayersOnField EndOfPlay(BaseballPlayRM play, List <LineupRM> lineup)
        {
            if (play == null || lineup == null || lineup.Count == 0 || play.RetrosheetGameId != lineup[0].RetrosheetGameId)
            {
                throw new System.Exception("Invalid play or lineup");
            }

            PLayersOnField players = new PLayersOnField();

            players.RetrosheetGameId = play.RetrosheetGameId;
            players.EventNumber      = play.EventNumber;
            players.IsStartOfPlay    = false;
            players.inning           = play.Inning;
            players.outs             = play.EndOfPlay_Outs;
            players.TeamAtBat        = play.TeamAtBat;
            players.HomeTeamScore    = play.EndOfPlay_HomeScore;
            players.AwayTeamScore    = play.EndOfPlay_VisitorScore;
            players.Pitcher          = FindDefender(1, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.Catcher          = FindDefender(2, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.FirstBaseman     = FindDefender(3, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.SecondBaseman    = FindDefender(4, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.ThirdBaseman     = FindDefender(5, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.ShortStop        = FindDefender(6, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.LeftFielder      = FindDefender(7, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.CenterFielder    = FindDefender(8, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.RightFielder     = FindDefender(9, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.Batter           = play.BatterEvent ? "" : FindPlayerByBattingOrder(play.BattingOrder, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.RunnerOnFirst    = FindPlayerByBattingOrder(play.EndOfPlay_Runner1BO, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.RunnerOnSecond   = FindPlayerByBattingOrder(play.EndOfPlay_Runner2BO, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);
            players.RunnerOnThird    = FindPlayerByBattingOrder(play.EndOfPlay_Runner3BO, play.TeamAtBat, lineup[play.LineupChangeSequence - 1]);

            return(players);
        }
Beispiel #2
0
        public IActionResult GetBaseballPlayPlayersStartOfPlay(string gameid, int eventnumber)
        {
            var play   = baseballPlayRepo.GetPlay(gameid, eventnumber);
            var lineup = lineupRepo.GetGameLineup(gameid);

            if (play == null || string.IsNullOrWhiteSpace(play.RetrosheetGameId) || lineup == null || lineup.Count == 0)
            {
                gameid = gameid.Replace("'", "");
                string id = gameid + "_" + eventnumber.ToString("000");
                return(BadRequest("No Baseball Play with ID " + id + " was found."));
            }

            var players = PLayersOnField.StartOfPlay(play, lineup);

            return(Ok(players));
        }