public JsonResult ObtenerJornadasFechas([Bind("CampeonatoID, CategoriaID, SerieID, Ronda")] PartidosCarga partidosCarga) { var jornadasFechasLista = _context.Jornadas.Where(x => x.CampeonatoID == partidosCarga.CampeonatoID && x.CategoriaID == partidosCarga.CategoriaID && x.SerieID == partidosCarga.SerieID && x.Ronda == partidosCarga.Ronda) .Select(x => new { ID = x.GrupoJornada, Fecha = "Fecha - " + x.GrupoJornada.ToString() }) .Distinct(); return(Json(jornadasFechasLista)); }
public JsonResult ObtenerJornadasFechasPartidos([Bind("CampeonatoID, CategoriaID, SerieID, Ronda")] PartidosCarga partidosCarga, int fecha) { var jornadasLista = _context.Jornadas.Where(x => x.CampeonatoID == partidosCarga.CampeonatoID && x.CategoriaID == partidosCarga.CategoriaID && x.SerieID == partidosCarga.SerieID && x.Ronda == partidosCarga.Ronda && x.GrupoJornada == fecha) .Select(x => x.ID); var jornadasPartidosLista = from j in _context.Jornadas join el in _context.Equipos on j.EquipoIDLocal equals el.ID join ev in _context.Equipos on j.EquipoIDVisita equals ev.ID where jornadasLista.Contains(j.ID) select new { j.ID, equipos = el.Nombre + " vs " + ev.Nombre }; return(Json(jornadasPartidosLista)); }
public JsonResult ObtenerJornadasTablero([Bind("CampeonatoID, CategoriaID, SerieID, Ronda")] PartidosCarga partidosCarga) { List <Tablero> tablero = _context.Jornadas.Where(x => x.CampeonatoID == partidosCarga.CampeonatoID && x.CategoriaID == partidosCarga.CategoriaID && x.SerieID == partidosCarga.SerieID && x.Ronda == partidosCarga.Ronda) .Select(x => new Tablero { EquipoID = x.EquipoIDLocal, Equipo = "", PartidosJugados = 0, PartidosGanados = 0, PartidosEmpatados = 0, PartidosPerdidos = 0, GolesAFavor = 0, GolesEnContra = 0, GolesDiferencia = 0, Puntos = 0, Posicion = 0, }).Distinct().ToList(); var visita = _context.Jornadas.Where(x => x.CampeonatoID == partidosCarga.CampeonatoID && x.CategoriaID == partidosCarga.CategoriaID && x.SerieID == partidosCarga.SerieID && x.Ronda == partidosCarga.Ronda) .Select(x => new Tablero { EquipoID = x.EquipoIDVisita, Equipo = "", PartidosJugados = 0, PartidosGanados = 0, PartidosEmpatados = 0, PartidosPerdidos = 0, GolesAFavor = 0, GolesEnContra = 0, GolesDiferencia = 0, Puntos = 0, Posicion = 0, }).Distinct().ToList(); tablero.AddRange(visita); tablero = tablero.Distinct(new TableroComparer()).ToList(); //Obtenemos todos los partidos de la ronda var partidos = (from j in _context.Jornadas join p in _context.Partidos on j.PartidoID equals p.ID where j.CampeonatoID == partidosCarga.CampeonatoID && j.CategoriaID == partidosCarga.CategoriaID && j.SerieID == partidosCarga.SerieID && j.Ronda == partidosCarga.Ronda && (p.PartidoEstadoID == 5 || p.PartidoEstadoID == 6 || p.PartidoEstadoID == 7) select new { p.ID, p.PartidoEstadoID, j.EquipoIDLocal, j.EquipoIDVisita }).ToList(); foreach (var partido in partidos) { if (partido.PartidoEstadoID == 5 || partido.PartidoEstadoID == 6 || partido.PartidoEstadoID == 7) { // Obtenemos el equipo local var local = tablero.FirstOrDefault(x => x.EquipoID == partido.EquipoIDLocal); // Obtenemos el equipo visitante var visitante = tablero.FirstOrDefault(x => x.EquipoID == partido.EquipoIDVisita); // Registramos el partido jugado en el respectivo equipo local.PartidosJugados++; visitante.PartidosJugados++; // Agrgamos los goles que cada equipo realizo local.GolesAFavor += _context.PartidosJugadores.Where(x => x.PartidoID == partido.ID && x.EquipoID == local.EquipoID).Sum(x => x.Goles); visitante.GolesAFavor += _context.PartidosJugadores.Where(x => x.PartidoID == partido.ID && x.EquipoID == visitante.EquipoID).Sum(x => x.Goles); // Agregamos los goles en contra(los que hizo el equipo contrario) local.GolesEnContra += _context.PartidosJugadores.Where(x => x.PartidoID == partido.ID && x.EquipoID == visitante.EquipoID).Sum(x => x.Goles); visitante.GolesEnContra += _context.PartidosJugadores.Where(x => x.PartidoID == partido.ID && x.EquipoID == local.EquipoID).Sum(x => x.Goles); // Colocamos la diferiencia de goles local.GolesDiferencia = local.GolesAFavor - local.GolesEnContra; visitante.GolesDiferencia = visitante.GolesAFavor - visitante.GolesEnContra; switch (partido.PartidoEstadoID) { // Juego Empatado case 5: visitante.PartidosEmpatados++; local.PartidosEmpatados++; local.Puntos += 1; visitante.Puntos += 1; break; // Gana local case 6: local.PartidosGanados++; visitante.PartidosPerdidos++; local.Puntos += 3; break; // Gana Visitante case 7: visitante.PartidosGanados++; local.PartidosPerdidos++; visitante.Puntos += 3; break; } int indexLocal = tablero.FindIndex(x => x.EquipoID == partido.EquipoIDLocal); tablero[indexLocal] = local; int indexVisitante = tablero.FindIndex(x => x.EquipoID == partido.EquipoIDVisita); tablero[indexVisitante] = visitante; } } //Asignamos la posicion en base a los puntos o por ID y considerando que hayan tenido partidos jugados int pos = 1; foreach (var equipo in tablero.Where(x => x.PartidosJugados > 0).OrderByDescending(x => x.Puntos).ThenByDescending(x => x.GolesDiferencia)) { equipo.Posicion = pos; pos++; } // Asignamos la posición a los equipos que no hayan jugado en base al ID int maxPosicion = tablero.Max(x => x.Posicion); maxPosicion = maxPosicion + 1; foreach (var equipo in tablero.Where(x => x.Posicion < 1)) { equipo.Posicion = maxPosicion; maxPosicion++; } // Colocamos el nombre la foto foreach (var item in tablero) { item.Equipo = _context.Equipos.Find(item.EquipoID).Nombre; item.Foto = _context.Equipos.Find(item.EquipoID).Foto; } return(Json(tablero.OrderBy(x => x.Posicion).ToList())); }
public JsonResult ObtenerPartidos(string si1dx, string sort, int page, int rows, [Bind("CampeonatoID, CategoriaID, SerieID, Ronda, Fecha")] PartidosCarga partidosCarga) { sort = (sort == null) ? "" : sort; int pageIndex = Convert.ToInt32(page) - 1; int pageSize = rows; var partidosLista = from j in _context.Jornadas join eLocal in _context.Equipos on j.EquipoIDLocal equals eLocal.ID join eVisita in _context.Equipos on j.EquipoIDVisita equals eVisita.ID join p in _context.Partidos on j.PartidoID equals p.ID where j.CampeonatoID == partidosCarga.CampeonatoID && j.CategoriaID == partidosCarga.CategoriaID && j.SerieID == partidosCarga.SerieID && j.Ronda == partidosCarga.Ronda && j.GrupoJornada == partidosCarga.Fecha select new { p.ID, p.PartidoEstadoID, Partido = eLocal.Nombre + " VS " + eVisita.Nombre, p.ArbitroIDCentral, p.ArbitroIDLateraDerecho, p.ArbitroIDLateralIzquierdo, p.VocalEquipoLocal, p.VocalEquipoVisitante }; int totalRecords = partidosLista.Count(); var totalPages = (int)Math.Ceiling((float)totalRecords / (float)rows); if (sort.ToUpper() == "DESC") { partidosLista = partidosLista.OrderByDescending(t => t.ID); partidosLista = partidosLista.Skip(pageIndex * pageSize).Take(pageSize); } else { partidosLista = partidosLista.OrderBy(t => t.ID); partidosLista = partidosLista.Skip(pageIndex * pageSize).Take(pageSize); } var jsonData = new { total = totalPages, page, records = totalRecords, rows = partidosLista }; return(Json(jsonData)); }