Beispiel #1
0
        public void PartidosEquipo(Response response)
        {
            var torneos = response.Css(".liga");

            foreach (var torneo in torneos)
            {
                var torneoNode = torneo.Css(".title");
                if (torneoNode.Any())
                {
                    var nombreTorneo = torneoNode[0].ChildNodes[2].InnerTextClean;
                    Console.WriteLine(nombreTorneo);
                    var nuevoTorneo    = CrearTorneo(nombreTorneo);
                    var partidosTorneo = torneo.Css(".nonplayingnow");
                    var filtro         = new ClasesPartido()
                    {
                        Fecha           = ".time",
                        EquipoLocal     = ".team-home",
                        NodoLocal       = 1,
                        EquipoVisitante = ".team-away",
                        NodoVisitante   = 0,
                        Resultado       = ".score.bold",
                        NodoResultado   = 0,
                        EsEquipo        = true
                    };
                    CrearPartidos(partidosTorneo, filtro, nuevoTorneo.Id);
                }
            }
        }
Beispiel #2
0
        public override void Parse(Response response)
        {
            var torneoNodo   = response.Css(".titular-data");
            var nombreTorneo = torneoNodo[0].ChildNodes[5].InnerTextClean;
            var torneo       = CrearTorneo(nombreTorneo);
            var partidos     = response.Css(".vevent");
            var filtro       = new ClasesPartido()
            {
                Fecha           = ".fecha",
                EquipoLocal     = ".equipo1",
                NodoLocal       = 2,
                EquipoVisitante = ".equipo2",
                NodoVisitante   = 2,
                Resultado       = ".rstd",
                NodoResultado   = 9,
                EsEquipo        = false
            };

            CrearPartidos(partidos, filtro, torneo.Id);
        }
Beispiel #3
0
        private string CrearPartidos(HtmlNode[] partidos, ClasesPartido filtroNodos, Guid idTorneo)
        {
            var fechaPartido = string.Empty;

            foreach (var partido in partidos)
            {
                var equipoLocal     = string.Empty;
                var equipoVisitante = string.Empty;
                var resultado       = string.Empty;
                var estadio         = string.Empty;
                var partidoNuevo    = new Partido();
                partidoNuevo.TorneoId = idTorneo;
                HtmlNode[] fechaNodo = partido.Css(filtroNodos.Fecha);
                if (fechaNodo.Any() && fechaNodo[0].ChildNodes.Any())
                {
                    fechaPartido = fechaNodo[0].ChildNodes[0].InnerTextClean;
                    var fechaDividida = fechaPartido.Split(' ');
                    var dia           = 0;
                    int.TryParse(fechaDividida[0], out dia);
                    var año = 0;
                    int.TryParse(fechaDividida[2], out año);
                    var mes     = fechaDividida[1];
                    var enumMes = Meses.Ene;
                    Enum.TryParse(mes, out enumMes);
                    DateTime fechaPartidoReal = new DateTime((año + 2000), (int)enumMes, dia);
                    partidoNuevo.Fecha = fechaPartidoReal;
                }

                var equipoLocalNodo = partido.Css(filtroNodos.EquipoLocal);
                if (equipoLocalNodo.Any() && equipoLocalNodo[0].ChildNodes.Length >= filtroNodos.NodoLocal)
                {
                    equipoLocal = equipoLocalNodo[0].ChildNodes[filtroNodos.NodoLocal].InnerTextClean;
                    var existeEquipo = _Equipos.FirstOrDefault(x => x.Nombre.ToLower() == equipoLocal.ToLower());
                    if (existeEquipo == null)
                    {
                        existeEquipo = FachadaContenedor.Resolver <IEquipoServicioAplicacion>()
                                       .Guardar(new Equipo()
                        {
                            Activo = true, Nombre = equipoLocal,
                        });
                        _Equipos.Add(existeEquipo);
                    }
                    partidoNuevo.EquipoLocalId = existeEquipo.Id;
                }
                var equipoVisitanteNodo = partido.Css(filtroNodos.EquipoVisitante);
                if (equipoVisitanteNodo.Any() && equipoVisitanteNodo[0].ChildNodes.Length >= filtroNodos.NodoVisitante)
                {
                    equipoVisitante = equipoVisitanteNodo[0].ChildNodes[filtroNodos.NodoVisitante].InnerTextClean;

                    var existeEquipo = _Equipos.FirstOrDefault(x => x.Nombre.ToLower() == equipoVisitante.ToLower());
                    if (existeEquipo == null)
                    {
                        existeEquipo = FachadaContenedor.Resolver <IEquipoServicioAplicacion>()
                                       .Guardar(new Equipo()
                        {
                            Activo = true, Nombre = equipoVisitante,
                        });
                        _Equipos.Add(existeEquipo);
                    }
                    partidoNuevo.EquipoVisitanteId = existeEquipo.Id;
                }

                var resultadoNodo = partido.Css(filtroNodos.Resultado);
                if (resultadoNodo.Any() && resultadoNodo[0].ChildNodes.Any())
                {
                    resultado = resultadoNodo[0].ChildNodes[filtroNodos.NodoResultado].InnerTextClean;
                    if (!string.IsNullOrEmpty(resultado))
                    {
                        var divisionResultado = resultado.Split('-');
                        if (divisionResultado.Any() && divisionResultado.Length > 1)
                        {
                            var golesLocal = 0;
                            int.TryParse(divisionResultado[0], out golesLocal);
                            partidoNuevo.GolesLocal = golesLocal;
                            var golesVisitante = 0;
                            int.TryParse(divisionResultado[1], out golesVisitante);
                            partidoNuevo.GolesVisitante = golesVisitante;
                        }
                    }

                    if (!filtroNodos.EsEquipo)
                    {
                        estadio = resultadoNodo[0].ChildNodes[5].InnerTextClean;
                        var existeEstadio = _Estadios.FirstOrDefault(x => x.Nombre.ToLower() == estadio.ToLower());
                        if (existeEstadio == null)
                        {
                            var estadioNuevo = FachadaContenedor.Resolver <IEstadioServicioAplicacion>().Guardar(new Estadio()
                            {
                                Nombre = estadio
                            });
                            _Estadios.Add(estadioNuevo);
                        }
                        partidoNuevo.EstadioId = existeEstadio.Id;
                    }
                    var detallePartido     = filtroNodos.EsEquipo ? resultadoNodo[0].ChildNodes[filtroNodos.NodoResultado] : resultadoNodo.CSS(".url").First();
                    var linkDetallePartido = detallePartido.Attributes["href"];
                    partidoNuevo.Hora = linkDetallePartido;
                    CrearPartido(partidoNuevo);
                    this.Request(linkDetallePartido, DetallePartido);
                }
            }

            return(fechaPartido);
        }