private async Task <List <MatchEventRT> > GenerateEventListForGame(PartidoTotalCO partido, int matchId) { var serviceProvider = ServiceConfiguration.ConsoleProvider; var events = new List <MatchEventRT>(); var playerIds = partido.PartidosJugados.Select(x => x.Cod_Jugador).ToList(); var playerService = ServiceConfiguration.ConsoleProvider.GetService <IPlayerService>(); var players = await playerService.GetPlayersFromList(playerIds); var cards = partido.Tarjetas.Select(x => new MatchEventRT() { Description = x.Tipo + " card", MatchEventType = Crosscutting.Enums.MatchEventTypeEnum.RedCard, Minute = x.Minuto, MatchId = matchId, Player1 = players.FirstOrDefault(y => y.PlayerId == x.Cd_Jugador) }).ToList(); var substitutions = partido.Cambios.Select(x => new MatchEventRT() { Description = "Substitution", MatchEventType = Crosscutting.Enums.MatchEventTypeEnum.Substitution, Minute = x.Minuto, MatchId = matchId, Player1 = players.FirstOrDefault(y => y.PlayerId == x.Cd_Jugador_Sale), Player2 = players.FirstOrDefault(y => y.PlayerId == x.Cd_Jugador_Entra) }).ToList(); var goals = partido.Goles.Select(x => new MatchEventRT() { Description = "Goal", MatchEventType = Crosscutting.Enums.MatchEventTypeEnum.Goal, Minute = x.Minuto, MatchId = matchId, Team1 = new Team() { Name = players.FirstOrDefault(y => y.PlayerId == x.Cd_Jugador).TeamName, Id = players.FirstOrDefault(y => y.PlayerId == x.Cd_Jugador).TeamId }, Player1 = players.FirstOrDefault(y => y.PlayerId == x.Cd_Jugador) }).ToList(); events.AddRange(cards); events.AddRange(substitutions); events.AddRange(goals); events.Add(new MatchEventRT() { Description = "", MatchEventType = Crosscutting.Enums.MatchEventTypeEnum.GameFinished, MatchId = matchId, Minute = 90 }); return(events.OrderBy(x => x.Minute).ToList()); }
public CrearPartidoTotalAction(PartidoTotalCO partidoTotalCO) { this.partidoTotalCO = partidoTotalCO; }
/*genera un PartidoTotalCO con todos los datos de un partido * tanto el PartidoVO como la lista de GolVOs y PartidoJugadoVOs * de los jugadores que participan en el * */ public PartidoTotalCO generarPartidoCompleto(int codCompeticion, String jornada, int codLocal, int codVisitante, bool saveChangesInBD = true) { PartidoVO partido = generarPartidoSimple(codCompeticion, jornada, codLocal, codVisitante, 1); var jugadoresLocal = generar11Titular(codLocal); var jugadoresVisitante = generar11Titular(codVisitante); var listaPartidosJugados = new List <PartidoJugadoVO>(); var golesLocal = new List <GolVO>(); var golesVisitante = new List <GolVO>(); //Se crean los partidosJugados para cada jugador del equipo local //titulares y suplentes int contador = 1; int numeroCambios = jugadoresLocal.Count - 11; foreach (var item in jugadoresLocal) { if (contador > 11) { listaPartidosJugados.Add(generarPartidoJugadoSimple(item.Cod_Jugador, "Suplente")); } else { listaPartidosJugados.Add(generarPartidoJugadoSimple(item.Cod_Jugador, "Titular")); } contador++; } //aqui se crean los cambios equipo local var cambiosLocal = new List <CambioVO>(); for (int i = 0; i < numeroCambios; i++) { var cambio = new CambioVO((jugadoresLocal[11 + i]).Cod_Jugador, (jugadoresLocal[1 + i]).Cod_Jugador, rand.Next(0, 90)); cambiosLocal.Add(cambio); } //Se crean los partidosJugados para cada jugador del equipo visitante //titulares y suplentes contador = 1; numeroCambios = jugadoresVisitante.Count - 11; foreach (var item in jugadoresVisitante) { if (contador > 11) { listaPartidosJugados.Add(generarPartidoJugadoSimple(item.Cod_Jugador, "Suplente")); } else { listaPartidosJugados.Add(generarPartidoJugadoSimple(item.Cod_Jugador, "Titular")); } contador++; } //aqui se crean los cambios equipo visitante var cambiosVisitante = new List <CambioVO>(); for (int i = 0; i < numeroCambios; i++) { var cambio = new CambioVO(((JugadorVO)jugadoresVisitante[11 + i]).Cod_Jugador, ((JugadorVO)jugadoresVisitante[1 + i]).Cod_Jugador, rand.Next(0, 90)); cambiosVisitante.Add(cambio); } //aqui generamos las tarjetas del equipo local var tarjetasLocal = new List <TarjetaVO>(); int numeroTarjetas = rand.Next(0, 6); for (int i = 0; i < numeroTarjetas; i++) { var tarjeta = new TarjetaVO(((JugadorVO)jugadoresLocal[i]).Cod_Jugador, rand.Next(0, 90), "Yellow", "Aggressive tackle"); tarjetasLocal.Add(tarjeta); } //aqui generamos las tarjetas del equipo visitante var tarjetasVisitante = new List <TarjetaVO>(); numeroTarjetas = rand.Next(0, 6); for (int i = 0; i < numeroTarjetas; i++) { var tarjeta = new TarjetaVO(((JugadorVO)jugadoresVisitante[i]).Cod_Jugador, rand.Next(0, 90), "Yellow", "Aggressive tackle"); tarjetasVisitante.Add(tarjeta); } //generamos ahora los goles concretos del partido var goleadoresLocal = generador.generaGoleadoresLista(jugadoresLocal, partido.Goles_Local); var goleadoresVisitante = generador.generaGoleadoresLista(jugadoresVisitante, partido.Goles_Visitante); foreach (JugadorVO item in goleadoresLocal) { golesLocal.Add(new GolVO(item.Cod_Jugador, generador.generarPosesion(), "Pie", "http://www.youtube.com/v/fV5UGc9nBAc&hl=en&fs=1")); } foreach (JugadorVO item in goleadoresVisitante) { golesVisitante.Add(new GolVO(item.Cod_Jugador, generador.generarPosesion(), "Cabeza", "http://www.youtube.com/v/fV5UGc9nBAc&hl=en&fs=1")); } cambiosLocal.AddRange(cambiosVisitante); golesLocal.AddRange(golesVisitante); tarjetasLocal.AddRange(tarjetasVisitante); PartidoTotalCO partidoCompleto = new PartidoTotalCO(partido, listaPartidosJugados, golesLocal, cambiosLocal, tarjetasLocal); if (saveChangesInBD) { PartidoTotalCO partidoTotal = fachada.pruebaCrearPartidoTotal(partidoCompleto); return(partidoTotal); } partidoCompleto.playersLocal = jugadoresLocal.Cast <JugadorVO>().ToList(); partidoCompleto.playersVisitor = jugadoresVisitante.Cast <JugadorVO>().ToList(); return(partidoCompleto); }