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); } }
//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); } }