Пример #1
0
        public ItemsViewModel()
        {
            Title = "Browse";

            int i   = 0;
            var rnd = new Random();

            while (i < 50)
            {
                var cod = "PC" + rnd.Next(0, 999);
                var par = new Paradero()
                {
                    Codigo    = cod,
                    stop_code = cod,
                    Texto     = "lorem ipsum trololo",
                    gtfs_id   = 1,
                    loc       = new LatLng(0, 0)
                };
                for (int j = 0; j < 7; j++)
                {
                    par.Servicios.Add(new Recorrido()
                    {
                        Codigo  = rnd.Next(0, 999).ToString(),
                        Ida     = "Providencia",
                        Regreso = "Las Condes",
                        Sentido = rnd.Next(1) == 0 ? Sentido.Ida : Sentido.Regreso
                    });
                }
                ParaderosCercanos.Add(par);
                i++;
            }
        }
Пример #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            Paradero paradero = db.Paradero.Find(id);

            db.Paradero.Remove(paradero);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #3
0
 public ActionResult Edit([Bind(Include = "Id,Descripcion")] Paradero paradero)
 {
     if (ModelState.IsValid)
     {
         db.Entry(paradero).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(paradero));
 }
Пример #4
0
        public ActionResult Create([Bind(Include = "Id,Descripcion")] Paradero paradero)
        {
            if (ModelState.IsValid)
            {
                db.Paradero.Add(paradero);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(paradero));
        }
Пример #5
0
        public static List <RutaDetalle> DameDetalle(Paradero origen, Paradero destino, Linea linea)
        {
            var      add      = false;
            var      list     = new List <RutaDetalle>();
            var      insert   = false;
            var      resetAdd = false;
            Paradero old      = null;

            foreach (var paradero in linea.Paraderos)
            {
                if (resetAdd)
                {
                    add = false;
                }
                if (new[] { origen.Codigo, destino.Codigo }.Contains(paradero.Codigo))
                {
                    add = !add;
                    if (add)
                    {
                        if (destino.Codigo == paradero.Codigo)
                        {
                            insert = true;
                        }
                        old = null;
                    }
                    else
                    {
                        resetAdd = true;
                        add      = true;
                    }
                }
                if (add && old != null)
                {
                    var detalle = insert ? new RutaDetalle {
                        Linea = linea.Codigo, Empresa = linea.Empresa.Nombre, ParaderoOrigen = paradero, ParaderoDestino = old
                    }
                    : new RutaDetalle {
                        Linea = linea.Codigo, Empresa = linea.Empresa.Nombre, ParaderoOrigen = old, ParaderoDestino = paradero
                    };
                    detalle.Distancia = Distance.GetDistance(detalle.ParaderoOrigen.Coordenada, detalle.ParaderoDestino.Coordenada);
                    if (insert)
                    {
                        list.Insert(0, detalle);
                    }
                    else
                    {
                        list.Add(detalle);
                    }
                }
                old = paradero;
            }
            return(list);
        }
Пример #6
0
        private Models.Paradero parseSingleServicio(string data, string codigoParadero)
        {
            var array = data.Split('<');

            var nombreParadero = array.Where(x => x.Contains("nombre_paradero_respuesta")).First();

            nombreParadero = nombreParadero.Substring(nombreParadero.IndexOf(':') + 1, nombreParadero.Length - (nombreParadero.IndexOf(':') + 1)).Trim();

            var errores = array.Where(x => x.Contains("respuesta_error"));

            var exitos = array.Where(x => x.Contains("proximo_bus_respuesta") || x.Contains("proximo_tiempo_respuesta") || x.Contains("proximo_distancia_respuesta"));

            var paradero = new Paradero();

            paradero.Nombre = nombreParadero;
            paradero.Codigo = codigoParadero;
            paradero.Micros = new List <Micro>();

            var numServicio = CleanString(array.ElementAt(array.ToList().IndexOf(array.Where(x => x.Contains("numero_parada_respuesta")).First()) + 8));

            if (exitos.Count() > 0)
            {
                for (var i = 1; i <= (exitos.Count() / 3); ++i)
                {
                    var n = i * 3 - 3;

                    paradero.Micros.Add(new Micro()
                    {
                        Servicio  = numServicio,
                        Mensaje   = CleanString(exitos.ElementAt(n + 1)),
                        PoseeInfo = true,
                        Patente   = CleanString(exitos.ElementAt(n)),
                        Distancia = int.Parse(CleanString(exitos.ElementAt(n + 2)).Replace(" mts.", ""))
                    });
                }
            }

            paradero.Micros = paradero.Micros.OrderBy(x => x.Distancia).ToList();

            if (errores.Count() > 0)
            {
                paradero.Micros.Add(new Micro()
                {
                    Servicio  = numServicio,
                    Mensaje   = CleanString(array.Where(x => x.Contains("respuesta_error")).First()),
                    PoseeInfo = false
                });
            }

            return(paradero);
        }
Пример #7
0
        // GET: Paraderos/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Paradero paradero = db.Paradero.Find(id);

            if (paradero == null)
            {
                return(HttpNotFound());
            }
            return(View(paradero));
        }
Пример #8
0
        private List <RutaDetalle> DameDetalle(Paradero origen, Paradero destino, Linea linea = null)
        {
            if (origen.Codigo == destino.Codigo)
            {
                return(new List <RutaDetalle>());
            }

            Linea[] lineas;

            if (linea != null)
            {
                lineas = new[] { linea }
            }
            ;
            else
            {
                lineas = LineaBC.DameLineas(origen);
            }
            var distance             = Distance.GetDistance(origen.Coordenada, destino.Coordenada);
            var paraderosMasCercanos =
                lineas
                .SelectMany(l => l.Paraderos.Select(p => new { Paradero = p, Linea = l, Distancia = Distance.GetDistance(p.Coordenada, destino.Coordenada) + Distance.GetDistance(p.Coordenada, origen.Coordenada) }))
                .Where(p => p.Paradero.Codigo != origen.Codigo &&
                       Distance.GetDistance(p.Paradero.Coordenada, destino.Coordenada) < distance)
                .OrderBy(p => p.Distancia)
                .ToArray();

            if (getMinimal)
            {
                var list = new List <List <RutaDetalle> >();


                foreach (var paraderoMasCercano in paraderosMasCercanos)
                {
                    var rutaDetalle = DameDetalle(paraderoMasCercano.Paradero, destino);
                    if (rutaDetalle == null)
                    {
                        continue;
                    }
                    var detalle = LineaARutaDetalle.DameDetalle(origen, paraderoMasCercano.Paradero, paraderoMasCercano.Linea);
                    detalle.AddRange(rutaDetalle);
                    list.Add(detalle);
                }
                return(list.OrderBy(p => p.Sum(d => d.Distancia)).First());
            }
            else
            {
                foreach (var paraderoMasCercano in paraderosMasCercanos)
                {
                    var rutaDetalle = DameDetalle(paraderoMasCercano.Paradero, destino);
                    if (rutaDetalle == null)
                    {
                        continue;
                    }
                    var detalle = LineaARutaDetalle.DameDetalle(origen, paraderoMasCercano.Paradero, paraderoMasCercano.Linea);
                    detalle.AddRange(rutaDetalle);
                    return(detalle);
                }
            }

            return(new List <RutaDetalle>());
        }
Пример #9
0
 public Linea[] GetLinea(Paradero paradero)
 {
     return(lineas.Where(l => l.Paraderos.Any(p => p.Codigo == paradero.Codigo)).ToArray());
 }
Пример #10
0
 public Linea[] DameLineas(Paradero paradero)
 {
     return(LineaDA.GetInstance().GetLinea(paradero));
 }