Exemple #1
0
        public ActionResult Index()
        {
            var contenidoArchivo = FachadaContenedor.Resolver <ICargarArchivo>().LeerArchivo(@"C:\Users\cristian.carvajal\Downloads\skirsesort.kitzbuehel\map.txt");
            var matriz           = FachadaContenedor.Resolver <IProcesarArchivo <int> >().CargarMatrizDesdeArchivo(contenidoArchivo);
            var rutas            = FachadaContenedor.Resolver <IGenerarRuta>().GenerarRutas(matriz);
            var mejorRuta        = FachadaContenedor.Resolver <IEscogerRuta>().EscogerMejorRuta(rutas);

            return(View());
        }
Exemple #2
0
        private void CrearPartido(Partido partido)
        {
            var existePartido = _partidos.Where(x => x.Hora == partido.Hora).FirstOrDefault();

            if (existePartido == null)
            {
                _partidos.Add(FachadaContenedor.Resolver <IPartidoServicioAplicacion>().Guardar(partido));
            }
        }
Exemple #3
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     GlobalConfiguration.Configure(WebApiConfig.Register);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     FachadaContenedor.RegistrarContenedor(IoCContenedor.unityContainer);
 }
Exemple #4
0
        static void Main(string[] args)
        {
            FachadaContenedor.RegistrarContenedor(IoCContenedor.unityContainer);
            var contenidoArchivo = FachadaContenedor.Resolver <ICargarArchivo>().LeerArchivo(@"C:\Users\cristian.carvajal\Downloads\skirsesort.kitzbuehel\map.txt");
            var matriz           = FachadaContenedor.Resolver <IProcesarArchivo <int> >().CargarMatrizDesdeArchivo(contenidoArchivo);
            var rutas            = FachadaContenedor.Resolver <IGenerarRuta>().GenerarRutas(matriz);
            var mejorRuta        = FachadaContenedor.Resolver <IEscogerRuta>().EscogerMejorRuta(rutas);

            Console.Read();
        }
Exemple #5
0
 public FutbolScrapper()
 {
     FachadaContenedor.RegisterContainer(ContenedorPrueba.ContenedorAplicacion);
     _torneos   = FachadaContenedor.Resolver <ITorneoServicioAplicacion>().ObtenerTodos().ToList();
     _Estadios  = FachadaContenedor.Resolver <IEstadioServicioAplicacion>().ObtenerTodos().ToList();
     _Paises    = FachadaContenedor.Resolver <IPaisServicioAplicacion>().ObtenerTodos().ToList();
     _Ciudades  = FachadaContenedor.Resolver <ICiudadServicioAplicacion>().ObtenerTodos().ToList();
     _jugadores = FachadaContenedor.Resolver <IJugadorServicioAplicacion>().ObtenerTodos().ToList();
     _Equipos   = FachadaContenedor.Resolver <IEquipoServicioAplicacion>().ObtenerTodos().ToList();
     _partidos  = FachadaContenedor.Resolver <IPartidoServicioAplicacion>().ObtenerTodos().ToList();
 }
Exemple #6
0
        private Torneo CrearTorneo(string nombreTorneo)
        {
            var torneoNuevo = _torneos.Where(x => x.Nombre.ToUpper() == nombreTorneo.ToUpper()).FirstOrDefault();

            if (torneoNuevo == null)
            {
                torneoNuevo = FachadaContenedor.Resolver <ITorneoServicioAplicacion>().Guardar(new Torneo()
                {
                    Nombre = nombreTorneo
                });
            }
            return(torneoNuevo);
        }
Exemple #7
0
        public Ciudad CrearCiudad(string nombre, Guid idPais)
        {
            var existeCiudad = _Ciudades.FirstOrDefault(x => x.Nombre.ToLower() == nombre.ToLower());

            if (existeCiudad == null)
            {
                var ciudadNueva = FachadaContenedor.Resolver <ICiudadServicioAplicacion>().Guardar(new Ciudad()
                {
                    Nombre = nombre, PaisId = idPais
                });
                _Ciudades.Add(ciudadNueva);
                return(ciudadNueva);
            }
            return(existeCiudad);
        }
Exemple #8
0
        public Pais CrearPais(string nombre)
        {
            var existePais = _Paises.FirstOrDefault(x => x.Nombre.ToLower() == nombre.ToLower());

            if (existePais == null)
            {
                var paisNuevo = FachadaContenedor.Resolver <IPaisServicioAplicacion>().Guardar(new Pais()
                {
                    Nombre = nombre
                });
                _Paises.Add(paisNuevo);
                return(paisNuevo);
            }
            return(existePais);
        }
Exemple #9
0
        public Jugador CrearJugador(string url)
        {
            var jugadorNuevo = _jugadores.FirstOrDefault(x => x.Apodo.ToLower() == url.ToLower());

            if (jugadorNuevo == null)
            {
                jugadorNuevo =
                    FachadaContenedor.Resolver <IJugadorServicioAplicacion>()
                    .Guardar(new Jugador()
                {
                    Apodo = url
                });
                _jugadores.Add(jugadorNuevo);
            }
            return(jugadorNuevo);
        }
Exemple #10
0
        public void DetalleJugador(Response response)
        {
            var ficha = response.Css("#pinfo");

            if (ficha.Any() && ficha[0].ChildNodes.Length >= 3 && ficha[0].ChildNodes[3].ChildNodes.Length >= 1)
            {
                var datosJugador = ficha[0].ChildNodes[3].ChildNodes[1];
                if (datosJugador.ChildNodes.Length >= 47)
                {
                    var fechaNacimiento  = datosJugador.ChildNodes[15].InnerTextClean;
                    var paisNacimiento   = datosJugador.ChildNodes[23].InnerTextClean;
                    var ciudadNacimiento = datosJugador.ChildNodes[19].InnerTextClean;
                    var nombre           = datosJugador.ChildNodes[43].InnerTextClean;
                    var apellidos        = datosJugador.ChildNodes[47].InnerTextClean;
                    var pais             = CrearPais(paisNacimiento);
                    var ciudad           = CrearCiudad(ciudadNacimiento, pais.Id);
                    var existeJugador    = _jugadores.FirstOrDefault(x => x.Apodo.ToLower() == response.FinalUrl.ToLower());
                    if (existeJugador == null)
                    {
                        FachadaContenedor.Resolver <IJugadorServicioAplicacion>()
                        .Guardar(new Jugador()
                        {
                            Nombre          = nombre,
                            Apellido        = apellidos,
                            Nacionalidad    = pais.Id,
                            FechaNacimiento = Convert.ToDateTime(fechaNacimiento),
                            Apodo           = response.FinalUrl
                        });
                    }
                    else
                    {
                        existeJugador.Nombre          = nombre;
                        existeJugador.Apellido        = apellidos;
                        existeJugador.Nacionalidad    = pais.Id;
                        existeJugador.FechaNacimiento = Convert.ToDateTime(fechaNacimiento);
                        FachadaContenedor.Resolver <IJugadorServicioAplicacion>().Guardar(existeJugador);
                    }
                }
            }
        }
Exemple #11
0
        public void DetallePartido(Response response)
        {
            var nominaPartido = new NominaPartido()
            {
                JugadoresLocal = new List <Guid>(), JugadoresVisitante = new List <Guid>(), SuplentesLocal = new List <Guid>(), SuplentesVisitante = new List <Guid>()
            };

            var equipoLocal = response.Css(".team.team1");

            if (equipoLocal.Any())
            {
                var alineacionLocal = equipoLocal.CSS(".aligns-list");
                var titularesLocal  = alineacionLocal[0].ChildNodes;

                foreach (var jugador in titularesLocal)
                {
                    if (jugador.ChildNodes.Length > 4)
                    {
                        var datosJugador = jugador.ChildNodes[5];
                        var linkJugador  = datosJugador.ChildNodes[0].Attributes["href"];
                        var jugadorBd    = CrearJugador(linkJugador);
                        nominaPartido.JugadoresLocal.Add(jugadorBd.Id);
                        this.Request(linkJugador, DetalleJugador);
                    }
                }

                var suplentesLocal = alineacionLocal[1].ChildNodes;
                foreach (var jugador in suplentesLocal)
                {
                    if (jugador.ChildNodes.Length > 4)
                    {
                        var datosJugador = jugador.ChildNodes[5];
                        var linkJugador  = datosJugador.ChildNodes[0].Attributes["href"];
                        var jugadorBd    = CrearJugador(linkJugador);
                        nominaPartido.SuplentesLocal.Add(jugadorBd.Id);
                        this.Request(linkJugador, DetalleJugador);
                    }
                }
            }
            var equipoVisitante = response.Css(".team.team2");

            if (equipoVisitante.Any())
            {
                var alineacionVisitante = equipoVisitante.CSS(".aligns-list");
                var titularesVisitante  = alineacionVisitante[0].ChildNodes;
                foreach (var jugador in titularesVisitante)
                {
                    if (jugador.ChildNodes.Length > 4)
                    {
                        var datosJugador = jugador.ChildNodes[5];
                        var nombre       = datosJugador.TextContentClean;
                        var linkJugador  = datosJugador.ChildNodes[0].Attributes["href"];
                        var jugadorBd    = CrearJugador(linkJugador);
                        nominaPartido.JugadoresVisitante.Add(jugadorBd.Id);
                        this.Request(linkJugador, DetalleJugador);
                    }
                }

                var suplentesVisitante = alineacionVisitante[1].ChildNodes;
                foreach (var jugador in suplentesVisitante)
                {
                    if (jugador.ChildNodes.Length > 4)
                    {
                        var datosJugador = jugador.ChildNodes[5];
                        var nombre       = datosJugador.TextContentClean;
                        var linkJugador  = datosJugador.ChildNodes[0].Attributes["href"];
                        var jugadorBd    = CrearJugador(linkJugador);
                        nominaPartido.SuplentesVisitante.Add(jugadorBd.Id);
                        this.Request(linkJugador, DetalleJugador);
                    }
                }
            }
            if (equipoLocal.Any() || equipoVisitante.Any())
            {
                var partido = _partidos.Where(x => x.Hora == response.FinalUrl).FirstOrDefault();
                nominaPartido.PartidoId = partido.Id;
                FachadaContenedor.Resolver <INominaPartidoServicioAplicacion>().Guardar(nominaPartido);
            }
        }
Exemple #12
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);
        }