public async Task <List <Caballos> > ObtenerCaballos()
 {
     using (CarrerasBDEntities contexto = new CarrerasBDEntities())
     {
         return(await contexto.Caballos.ToListAsync());
     }
 }
Example #2
0
        private async Task <bool> InsertarDetalleCarrera(Carreras carrera, List <JugadorDTO> participantes)
        {
            Random           random               = new Random();
            CarreraJugador   carreraJugador       = null;
            decimal          saldoApostado        = 0;
            List <Jugadores> participantesCarrera = await new JugadorRepository().ObtenerParticipantes(participantes);

            using (CarrerasBDEntities context = new CarrerasBDEntities())
            {
                var    valorApostado = 0;
                string tipoApuesta   = TipoApuesta();

                foreach (var jugadorCarrera in participantesCarrera)
                {
                    switch (tipoApuesta)
                    {
                    case "CONSERVADORA":
                        valorApostado = random.Next(10, 21);
                        break;

                    default:
                        valorApostado = random.Next(5, 16);
                        break;
                    }
                    if (jugadorCarrera.Saldo > 0)
                    {
                        if (jugadorCarrera.Saldo >= 2000)
                        {
                            saldoApostado  = (jugadorCarrera.Saldo / 100) * valorApostado;
                            carreraJugador = new CarreraJugador()
                            {
                                Jugador          = jugadorCarrera.IdJugador,
                                CaballoApostado  = participantes.FirstOrDefault(a => a.IdJugador == jugadorCarrera.IdJugador).CaballoApostado,
                                Carrera          = carrera.IdCarrera,
                                CantidadApostada = saldoApostado
                            };
                        }
                        else
                        {
                            if (jugadorCarrera.Saldo < 2000)
                            {
                                saldoApostado  = jugadorCarrera.Saldo;
                                carreraJugador = new CarreraJugador()
                                {
                                    Jugador          = jugadorCarrera.IdJugador,
                                    CaballoApostado  = participantes.FirstOrDefault(a => a.IdJugador == jugadorCarrera.IdJugador).CaballoApostado,
                                    Carrera          = carrera.IdCarrera,
                                    CantidadApostada = saldoApostado
                                };
                            }
                        }
                        new JugadorRepository().ActualizarSaldoApuestaJugador(jugadorCarrera.IdJugador, saldoApostado);
                        context.CarreraJugador.Add(carreraJugador);
                    }
                }

                return(await context.SaveChangesAsync() > 0 ? true : false);
            }
        }
        public async void ActualizarSaldoApuestaJugador(int idJugador, decimal saldoResta)
        {
            using (CarrerasBDEntities context = new CarrerasBDEntities())
            {
                var jugador = context.Jugadores.FirstOrDefault(a => a.IdJugador == idJugador);

                jugador.Saldo -= saldoResta;

                await context.SaveChangesAsync();
            }
        }
        public async Task <decimal> ActualizarSaldoGanadorJugador(int idJugador, decimal saldoSuma)
        {
            using (CarrerasBDEntities context = new CarrerasBDEntities())
            {
                var jugador = context.Jugadores.FirstOrDefault(a => a.IdJugador == idJugador);

                jugador.Saldo += saldoSuma;

                await context.SaveChangesAsync();

                return(jugador.Saldo);
            }
        }
        public async Task <Jugadores> CrearJugador(JugadorDTO jugadorDto)
        {
            using (CarrerasBDEntities context = new CarrerasBDEntities())
            {
                Jugadores jugador = new Jugadores()
                {
                    NombreJugador = jugadorDto.Nombre,
                    Saldo         = Convert.ToDecimal(20000)
                };

                context.Jugadores.Add(jugador);

                await context.SaveChangesAsync();

                return(jugador);
            }
        }
        public async Task <CaballoDTO> ObtenerCaballoPorId(int?idCaballo)
        {
            CaballoDTO caballoDto = null;

            using (CarrerasBDEntities contexto = new CarrerasBDEntities())
            {
                var caballo = await contexto.Caballos.FirstOrDefaultAsync(a => a.IdCaballo == idCaballo);

                caballoDto = new CaballoDTO()
                {
                    IdCaballo     = caballo.IdCaballo,
                    NombreCaballo = caballo.NombreCaballo,
                    Bonificador   = caballo.Bonificador
                };

                return(caballoDto);
            }
        }
        public async Task <List <Jugadores> > ObtenerParticipantes(List <JugadorDTO> jugadores)
        {
            List <Jugadores> jugadoresRetorno = new List <Jugadores>();

            using (CarrerasBDEntities context = new CarrerasBDEntities())
            {
                foreach (var item in jugadores)
                {
                    var jugadorParticipante = await context.Jugadores.FirstOrDefaultAsync(a => a.IdJugador == item.IdJugador);

                    if (jugadorParticipante != null)
                    {
                        jugadoresRetorno.Add(jugadorParticipante);
                    }
                }
            }

            return(jugadoresRetorno);
        }
Example #8
0
        //se aplicara logica de negocio en este componente debido a lo acotado.
        public async Task <CarreraDTO> CrearCarrera(CarreraDTO carreraDto)
        {
            Random random = new Random();

            using (CarrerasBDEntities context = new CarrerasBDEntities())
            {
                Carreras carrera = new Carreras();
                carrera.CaballoGanador = await ObtenerGanador();

                context.Carreras.Add(carrera);
                await context.SaveChangesAsync();

                carrera.NombreCarrera    = string.Format("Carrera {0}", carrera.IdCarrera);
                carreraDto.Participantes = await AsignarPorcentaje(carreraDto.Participantes);
                await InsertarDetalleCarrera(carrera, carreraDto.Participantes);

                carrera.CarreraJugador = context.CarreraJugador.Where(a => a.Carreras.IdCarrera == carrera.IdCarrera).ToList();

                await context.SaveChangesAsync();

                return(await RetornoCarrera(carreraDto, carrera));
            }
        }
Example #9
0
        public async Task <List <CarreraDTO> > ObtenerCarreras()
        {
            List <CarreraDTO> listaCarreras = new List <CarreraDTO>();

            using (CarrerasBDEntities contexto = new CarrerasBDEntities())
            {
                CarreraDTO carreraDto = null;
                JugadorDTO jugadorDto = null;
                var        carreras   = contexto.Carreras.ToList();

                foreach (var carrera in carreras)
                {
                    carreraDto               = new CarreraDTO();
                    carreraDto.IdCarrera     = carrera.IdCarrera;
                    carreraDto.NombreCarrera = carrera.NombreCarrera;

                    foreach (var jugador in carrera.CarreraJugador)
                    {
                        jugadorDto = new JugadorDTO()
                        {
                            IdJugador        = jugador.Jugadores.IdJugador,
                            CaballoApostado  = jugador.CaballoApostado,
                            Nombre           = jugador.Jugadores.NombreJugador,
                            Saldo            = jugador.Jugadores.Saldo,
                            CantidadApostada = jugador.CantidadApostada
                        };
                        carreraDto.Participantes.Add(jugadorDto);
                    }

                    carreraDto.CaballoGanador = await new CaballoRepository().ObtenerCaballoPorId(carrera.CaballoGanador);
                    listaCarreras.Add(carreraDto);
                }
            }

            return(listaCarreras);
        }