Beispiel #1
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);
            }
        }
Beispiel #4
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));
            }
        }
        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);
            }
        }