private static void CalcularPuntosTotales(JornadasPorFechaRenglonVM renglonLocal, JornadasPorFechaRenglonVM renglonVisitante)
        {
            foreach (var resultadoLocal in renglonLocal.ResultadosPorCategorias)
            {
                var resultadoVisitante = renglonVisitante.ResultadosPorCategorias.Single(x => x.Orden == resultadoLocal.Orden);
                switch (resultadoLocal.Goles)
                {
                case "S":
                case "P":
                case "AR":
                    continue;

                default:
                    renglonLocal.PartidosJugados++;
                    renglonVisitante.PartidosJugados++;
                    break;
                }

                if (resultadoLocal.Goles == "NP" && resultadoVisitante.Goles == "NP")
                {
                    continue;
                }

                var golesLocalInt = 0;
                var golesVisitInt = 0;

                if (resultadoVisitante.Goles != "NP")
                {
                    golesVisitInt = Convert.ToInt32(resultadoVisitante.Goles);
                }

                if (resultadoLocal.Goles != "NP")
                {
                    golesLocalInt = Convert.ToInt32(resultadoLocal.Goles);
                }

                if (golesLocalInt > golesVisitInt)
                {
                    renglonLocal.PuntosTotales += 3;
                    if (resultadoVisitante.Goles != "NP")
                    {
                        renglonVisitante.PuntosTotales += 1;
                    }
                }
                else if (golesLocalInt < golesVisitInt)
                {
                    renglonVisitante.PuntosTotales += 3;
                    if (resultadoLocal.Goles != "NP")
                    {
                        renglonLocal.PuntosTotales += 1;
                    }
                }
                else if (golesLocalInt == golesVisitInt)
                {
                    renglonLocal.PuntosTotales     += 2;
                    renglonVisitante.PuntosTotales += 2;
                }
            }
        }
        public ResumenDeJornadasVM Tablas(Zona zona, List <Fecha> fechas)
        {
            var result = new ResumenDeJornadasVM($"Resumen de jornadas {zona.DescripcionCompleta()}", zona.TorneoId, zona.Id);

            AgregarCategorias(zona, result);
            CrearUnaTablaPorFecha(fechas, result);

            foreach (var fecha in fechas)
            {
                var jornadasContador = 1;
                foreach (var jornada in fecha.Jornadas)
                {
                    var renglonLocal = new JornadasPorFechaRenglonVM
                    {
                        JornadaId     = jornada.Id,
                        JornadaNumero = jornadasContador,
                        Equipo        = jornada.NombreDelLocal(),
                        Escudo        = _imagenesEscudosPersistence.PathRelativo(jornada.Local?.ClubId ?? -1),
                    };

                    var renglonVisitante = new JornadasPorFechaRenglonVM
                    {
                        JornadaId     = jornada.Id,
                        JornadaNumero = jornadasContador,
                        Equipo        = jornada.NombreDelVisitante(),
                        Escudo        = _imagenesEscudosPersistence.PathRelativo(jornada.Visitante?.ClubId ?? -1),
                    };

                    foreach (var partido in jornada.Partidos)
                    {
                        var resultadoPorCatLocal = new ResultadosPorCategoriaVM
                        {
                            Orden = partido.Categoria.Orden,
                            Goles = partido.GolesLocal
                        };

                        var resultadoPorCatVisit = new ResultadosPorCategoriaVM
                        {
                            Orden = partido.Categoria.Orden,
                            Goles = partido.GolesVisitante
                        };

                        renglonLocal.ResultadosPorCategorias.Add(resultadoPorCatLocal);
                        renglonVisitante.ResultadosPorCategorias.Add(resultadoPorCatVisit);
                    }

                    renglonLocal.ResultadosPorCategorias.Sort((x, y) => x.Orden.CompareTo(y.Orden));
                    renglonVisitante.ResultadosPorCategorias.Sort((x, y) => x.Orden.CompareTo(y.Orden));

                    CalcularPuntosTotales(renglonLocal, renglonVisitante);

                    renglonLocal.PartidoVerificado     = jornada.ResultadosVerificados.ToCheckString();
                    renglonVisitante.PartidoVerificado = jornada.ResultadosVerificados.ToCheckString();

                    result.JornadasPorFecha.Single(x => x.FechaId == fecha.Id).Renglones.Add(renglonLocal);
                    result.JornadasPorFecha.Single(x => x.FechaId == fecha.Id).Renglones.Add(renglonVisitante);
                    jornadasContador++;
                }
            }

            return(result);
        }