예제 #1
0
        private MlbGameDto CreateGameDto(MlbShortGame mlbShortGame, bool loadPlayers)
        {
            if (loadPlayers)
            {
                return(CreateGameDtoWithPlayers(mlbShortGame));
            }

            return(CreateGameDtoWithoutPlayers(mlbShortGame));
        }
예제 #2
0
        private MlbGameDto CreateGameDtoWithoutPlayers(MlbShortGame mlbShortGame)
        {
            Guid     gameId        = mlbShortGame.GameId;
            DateTime startDateTime = mlbShortGame.StartDateTime;
            Guid     homeTeamId    = mlbShortGame.HomeTeamId;
            Guid     awayTeamId    = mlbShortGame.AwayTeamId;
            Guid?    homePitcherId = mlbShortGame.HomePitcherId;
            Guid?    awayPitcherId = mlbShortGame.AwayPitcherId;

            TeamDto homeTeamDto = GetTeam(homeTeamId);
            TeamDto awayTeamDto = GetTeam(awayTeamId);

            PlayerDto homePitcherDto;
            PlayerDto awayPitcherDto;

            if (homePitcherId != null)
            {
                homePitcherDto = GetPlayer(homePitcherId.Value);
            }
            else
            {
                homePitcherDto = null;
                Logger.Info("CreateGameDtoWithoutPlayers(): homePitcher is null");
            }

            if (awayPitcherId != null)
            {
                awayPitcherDto = GetPlayer(awayPitcherId.Value);
            }
            else
            {
                awayPitcherDto = null;
                Logger.Info("CreateGameDtoWithoutPlayers(): awayPitcher is null");
            }

            MlbGameDto mlbGame = new MlbGameDto
            {
                GameId        = gameId,
                StartDateTime = startDateTime,
                HomeTeam      = homeTeamDto,
                AwayTeam      = awayTeamDto,
                HomePitcher   = homePitcherDto,
                AwayPitcher   = awayPitcherDto
            };

            return(mlbGame);
        }
예제 #3
0
        private MlbGameDto CreateGameDtoWithPlayers(MlbShortGame mlbShortGame)
        {
            Guid     gameId        = mlbShortGame.GameId;
            DateTime startDateTime = mlbShortGame.StartDateTime;
            Guid     homeTeamId    = mlbShortGame.HomeTeamId;
            Guid     awayTeamId    = mlbShortGame.AwayTeamId;
            Guid?    homePitcherId = mlbShortGame.HomePitcherId;
            Guid?    awayPitcherId = mlbShortGame.AwayPitcherId;

            TeamDto homeTeamDto = GetTeam(homeTeamId);
            TeamDto awayTeamDto = GetTeam(awayTeamId);

            List <PlayerDto> homePlayerDtoList = GetPlayers(homeTeamId);
            List <PlayerDto> awayPlayerDtoList = GetPlayers(awayTeamId);

            if (homePlayerDtoList == null || homePlayerDtoList.Count == 0)
            {
                Logger.Info("CreateGameDtoWithPlayers(): homePlayerDtoList is null or empty");
            }

            if (awayPlayerDtoList == null || awayPlayerDtoList.Count == 0)
            {
                Logger.Info("CreateGameDtoWithPlayers(): awayPlayerDtoList is null or empty");
            }

            homeTeamDto.PlayerList = homePlayerDtoList;
            awayTeamDto.PlayerList = awayPlayerDtoList;

            PlayerDto homePitcher;
            PlayerDto awayPitcher;

            if (homePitcherId != null)
            {
                homePitcher = homeTeamDto.PlayerList?.Find(p => p.PlayerId == homePitcherId);
            }
            else
            {
                homePitcher = null;
                Logger.Info("CreateGameDtoWithPlayers(): homePitcher is null");
            }

            if (awayPitcherId != null)
            {
                awayPitcher = homeTeamDto.PlayerList?.Find(p => p.PlayerId == awayPitcherId);
            }
            else
            {
                awayPitcher = null;
                Logger.Info("CreateGameDtoWithPlayers(): awayPitcher is null");
            }

            MlbGameDto mlbGameDto = new MlbGameDto
            {
                GameId        = gameId,
                StartDateTime = startDateTime,
                HomeTeam      = homeTeamDto,
                AwayTeam      = awayTeamDto,
                HomePitcher   = homePitcher,
                AwayPitcher   = awayPitcher
            };

            return(mlbGameDto);
        }
예제 #4
0
        public List <MlbGameDto> GetGames(int numberGameDays, bool loadPlayers)
        {
            lock (_lockObject)
            {
                List <MlbShortGame> mlbShortGameList = new List <MlbShortGame>();
                List <MlbGameDto>   mlbGameList      = new List <MlbGameDto>();

                using (NpgsqlConnection npgsqlConnection = new NpgsqlConnection(ConnectionString))
                {
                    npgsqlConnection.Open();
                    const string sqlCommandText = "select * from mlb.get_games(@number_games_days)";

                    using (NpgsqlCommand npgsqlCommand = new NpgsqlCommand(sqlCommandText, npgsqlConnection))
                    {
                        npgsqlCommand.CommandType = CommandType.Text;

                        NpgsqlParameter npgsqlParameter1 = new NpgsqlParameter("number_games_days", numberGameDays);
                        npgsqlCommand.Parameters.Add(npgsqlParameter1);

                        using (NpgsqlDataReader npgsqlDataReader = npgsqlCommand.ExecuteReader())
                        {
                            if (!npgsqlDataReader.HasRows)
                            {
                                const string message = "GetGames() has no rows";
                                Logger.Info(message);

                                return(mlbGameList);
                            }

                            while (npgsqlDataReader.Read())
                            {
                                Guid gameId = npgsqlDataReader.GetGuid("game_id");
                                //                                DateTime startDateTime = npgsqlDataReader.GetDateTime("schedule");
                                DateTime startDateTime = npgsqlDataReader.GetDateTime("start_time");
                                Guid     homeTeamId    = npgsqlDataReader.GetGuid("home_id");
                                Guid     awayTeamId    = npgsqlDataReader.GetGuid("away_id");
                                Guid?    homePitcherId = npgsqlDataReader.GetNullableGuid("home_pitcher_id");
                                Guid?    awayPitcherId = npgsqlDataReader.GetNullableGuid("away_pitcher_id");

                                MlbShortGame mlbShortGame = new MlbShortGame
                                {
                                    GameId        = gameId,
                                    StartDateTime = startDateTime,
                                    HomeTeamId    = homeTeamId,
                                    AwayTeamId    = awayTeamId,
                                    HomePitcherId = homePitcherId,
                                    AwayPitcherId = awayPitcherId
                                };

                                mlbShortGameList.Add(mlbShortGame);
                            }
                        }
                    }
                }

                foreach (MlbShortGame mlbShortGame in mlbShortGameList)
                {
                    MlbGameDto mlbGame = CreateGameDto(mlbShortGame, loadPlayers);
                    mlbGameList.Add(mlbGame);
                }

                return(mlbGameList);
            }
        }