コード例 #1
0
        public NextBatterResult SaveNewGameState([FromBody] BaseballGameStateResult gameState)
        {
            var dataCache = new DataCache();

            if (gameState.GameStat != null)
            {
                var originalState = BaseballService.GetInstance().GetExistingGameState(gameID: gameState.GameID, leagueID: gameState.LeagueID, dataCache: dataCache);
                GamesService.GetInstance().AddStat(ConvertObjects.ConvertType(gameState.GameStat), originalState);
                int rbis = 0;
                foreach (var player in gameState.RunnersScored)
                {
                    rbis++;
                    GamesService.GetInstance().AddStat(ConvertObjects.ConvertType(new StatRequest()
                    {
                        GameID     = gameState.GameID,
                        PlayerID   = player.ID,
                        StatTypeID = (int)CalculatedStatTypes.Runs,
                        TeamID     = gameState.GameStat.TeamID,
                        Value      = 1,
                        GroupID    = gameState.GameStat.GroupID,
                    }));
                }

                if (rbis > 0)
                {
                    GamesService.GetInstance().AddStat(ConvertObjects.ConvertType(new StatRequest()
                    {
                        GameID     = gameState.GameID,
                        PlayerID   = gameState.GameStat.PlayerID,
                        StatTypeID = (int)CalculatedStatTypes.RBI,
                        TeamID     = gameState.GameStat.TeamID,
                        Value      = rbis,
                        GroupID    = gameState.GameStat.GroupID,
                    }), originalState);
                }
            }
            bool manualAdjustment = gameState.GameStat == null;
            var  result           = BaseballService.GetInstance().SaveNewGameState(ConvertObjects.ConvertType(gameState), manualAdjustment, dataCache: dataCache);

            if (gameState.GameStat != null)
            {
                //Create new at bat group for player
                StatsService.GetInstance().CreateNewStatGroup((int)SportsList.Baseball, gameState.GameID, gameState.GameStat.PlayerID, gameState.GameStat.TeamID);
            }
            return(ConvertObjects.ConvertType(result));
        }
コード例 #2
0
 public static BaseballGameState ConvertType(BaseballGameStateResult o)
 {
     return(new BaseballGameState()
     {
         GameID = o.GameID,
         Inning = o.Inning,
         NumberOfOuts = o.NumberOfOuts,
         PlayerOnFirst = o.PlayerOnFirst != null?ConvertType(o.PlayerOnFirst) : null,
                             PlayerOnSecond = o.PlayerOnSecond != null?ConvertType(o.PlayerOnSecond) : null,
                                                  PlayerOnThird = o.PlayerOnThird != null?ConvertType(o.PlayerOnThird) : null,
                                                                      RunnersOut = o.RunnersOut?.Select(r => new PlayerBase()
         {
             Number = r.Number, ID = r.ID, Name = r.Name
         }).ToList(),
                                                                      RunnersScored = o.RunnersScored?.Select(r => new PlayerBase()
         {
             Number = r.Number, ID = r.ID, Name = r.Name
         }).ToList(),
                                                                      Team1Player = o.Team1Player != null?ConvertType(o.Team1Player) : null,
                                                                                        Team2Player = o.Team2Player != null?ConvertType(o.Team2Player) : null,
                                                                                                          TopOfInning = o.TopOfInning,
                                                                                                          NextAtBat = o.NextAtBat
     });
 }