Exemple #1
0
 public GamesQueryService(
     IGamesRepository gamesRepository,
     GameToGameReportMapper gameToGameReportMapper)
 {
     _gamesRepository        = gamesRepository;
     _gameToGameReportMapper = gameToGameReportMapper;
 }
            protected override void Given()
            {
                _sut = new GameToGameReportMapper();

                var id = Guid.Empty;

                _game = new Game(id);
                _expectedGameReport = new GameReport(id, null !, 0, null !, 0);
            }
            private GameReport _expectedGameReport; //plantilla de informe de partido

            protected override void Given()
            {
                _sut = new GameToGameReportMapper();                            //inicializamos el mapeador

                var id = Guid.Empty;                                            //declaramos una id

                _game = new Game(id);                                           //creamos un nuevo partido con la id vacio
                _expectedGameReport = new GameReport(id, null !, 0, null !, 0); //inicalizamos el informe
            }
        public void AddGoal(Guid id, NewGoal newGoal)
        {
            var game = _gamesRepository.GetGame(id);//obtenemos el partido mediante la id


            GameToGameReportMapper mapeador     = new GameToGameReportMapper();
            GameReport             report       = mapeador.Map(game);
            ReporteGoles           reporteGoles = new ReporteGoles(report);



            var currentDate = _dateTimeService.GetUtcNow();     //establecemos la fecha actual del partido

            var teamCode = newGoal.TeamCode;                    //obtenemos el nombre del equipo

            var goal = new Goal(currentDate, newGoal.ScoredBy); //creamos un goal con la fecha actual del gol
            //, y scoreby quien marco (nombre del jugador)

            var isTeamPlaying = game.LocalTeamCode == teamCode || game.ForeignTeamCode == teamCode;


            if (!isTeamPlaying)//si no esta jugando
            {
                throw new ResourceNotFoundException($"The team code {teamCode} is not playing the game");
            }

            if (game.LocalTeamCode == teamCode) //si el juego el quipoLocal  es igual al teamcode
            {
                game.AddLocalTeamGoal(goal);    //agregamos al juego los goal que han marcado si pertenece a ese equipo
                                                //
                reporteGoles.añadirGoles(newGoal, goal);
            }
            else
            {
                game.AddForeignTeamGoal(goal);//se lo metemos al equipo adversario

                reporteGoles.añadirGoles(newGoal, goal);
            }

            _gamesRepository.UpdateGame(id, game);//actualizamos la base de datos con la id y game

            //actualizamos el reporte de la clase pivote

            mapeador = new GameToGameReportMapper();
            Game       juegoFinal   = _gamesRepository.GetGame(id);
            GameReport reporteFinal = mapeador.Map(juegoFinal);

            reporteGoles = new ReporteGoles(report);

            _gamesRepository.AddReporteGoles(juegoFinal, reporteGoles);
            //
        }
        /**
         * Metodo que devuelve una con todos los reportr de la base de datos
         * Creamos una lista de tipo Game y almacenamos todos los game de la bbdd
         *
         * Por ultimo creamos una lista de GameReport y con el mapeador le añadimos los game
         */
        public List <GameReport> mostrarReportes()
        {
            List <Game> lista = new List <Game>();

            lista = (List <Game>)_gamesRepository.GetGames();                   //lista de game

            List <GameReport>      listaReporte = new List <GameReport>();      //lista de reportes que vamos a devolver
            GameToGameReportMapper mapeador     = new GameToGameReportMapper(); //mapeador

            for (int i = 0; i < lista.Count; i++)
            {
                //usando el mapeador le cargarmos a la lista de reporte un nuevo GameReport de la lista de Games
                listaReporte.Add(mapeador.Map(lista[i]));
            }

            return(listaReporte);
        }
            protected override void Given()
            {
                _id = Guid.Empty;

                var game = new Game(_id);

                game.AddLocalTeam("RMD");
                game.AddForeignTeam("FCB");

                _gamesRepositoryMock = new Mock <IGamesRepository>();
                _gamesRepositoryMock
                .Setup(x => x.GetGame(_id))
                .Returns(game);
                var gamesRepository = _gamesRepositoryMock.Object;

                var gameToGameReportMapper = new GameToGameReportMapper();

                _sut = new GamesQueryService(gamesRepository, gameToGameReportMapper);
            }