public ICollection <Viaje> ListarViajes()
 {
     try
     {
         using (uruguay_busEntities db = new uruguay_busEntities())
         {
             ICollection <Viaje> ret    = new List <Viaje>();
             ICollection <viaje> viajes = (ICollection <viaje>)db.viaje.ToList();
             foreach (var item in viajes)
             {
                 Viaje v = ViajeConverter.convert(item);
                 v.horario           = HorarioConverter.convert(item.horario);
                 v.horario.vehiculo  = VehiculoConverter.convert(item.horario.vehiculo);
                 v.horario.conductor = ConductorConverter.convert(item.horario.conductor);
                 v.horario.linea     = LineaConverter.convert(item.horario.linea);
                 ret.Add(v);
             }
             return(ret);
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
        public Viaje ObtenerViajeActual(int idConductor)
        {
            using (uruguay_busEntities db = new uruguay_busEntities())
            {
                try
                {
                    viaje v = db.viaje.Where(x => x.finalizado == false && x.horario.conductor_id == idConductor).First();

                    return(ViajeConverter.convert(v));
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
        public ICollection <Viaje> RegistrarViajes(ICollection <Viaje> vs, int idHorario)
        {
            using (uruguay_busEntities db = new uruguay_busEntities())
            {
                try
                {
                    horario hor = db.horario.Find(idHorario);
                    if (hor == null)
                    {
                        throw new Exception("No se encontro ningun horario con ese ID");
                    }

                    ICollection <viaje> viajes          = ViajeConverter.convert(vs);
                    ICollection <viaje> viajesGuardados = new List <viaje>();

                    foreach (var via in viajes)
                    {
                        via.horario = hor;
                        db.viaje.Add(via);
                        viajesGuardados.Add(via);
                    }
                    db.SaveChanges();

                    //-------- para retornar
                    ICollection <Viaje> viajesRet = new List <Viaje>();

                    foreach (var item in viajesGuardados)
                    {
                        Viaje v = ViajeConverter.convert(item);
                        v.horario           = HorarioConverter.convert(item.horario);
                        v.horario.vehiculo  = VehiculoConverter.convert(item.horario.vehiculo);
                        v.horario.conductor = ConductorConverter.convert(item.horario.conductor);
                        v.horario.linea     = LineaConverter.convert(item.horario.linea);
                        viajesRet.Add(v);
                    }

                    return(viajesRet);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
        public ICollection <Viaje> ListarViajesDelDia(int idConductor)
        {
            using (uruguay_busEntities db = new uruguay_busEntities())
            {
                try
                {
                    ICollection <Viaje> ret = new List <Viaje>();
                    conductor           c   = db.conductor.Find(idConductor);

                    if (c == null)
                    {
                        throw new Exception("No se pudo encontrar el conductor.");
                    }

                    foreach (var h in c.horario)
                    {
                        foreach (var v in h.viaje)
                        {
                            if (v.fecha.CompareTo(DateTime.Today) == 0 && v.finalizado == null)
                            {
                                Viaje Vi = ViajeConverter.convert(v);
                                Vi.horario       = HorarioConverter.convert(v.horario);
                                Vi.horario.linea = LineaConverter.convert(v.horario.linea);

                                ret.Add(Vi);
                            }
                        }
                    }

                    return(ret);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }