public ICollection <Usuario> ListarUsuario() { try { using (uruguay_busEntities db = new uruguay_busEntities()) { ICollection <usuario> lst = (ICollection <usuario>)db.usuario.ToList(); ICollection <Usuario> ret = new List <Usuario>(); foreach (var item in lst) { Usuario u = UsuarioConverter.convert(item); u.persona = PersonaConverter.convert(item.persona); u.persona.admin = item.persona.admin == null ? null : AdminConverter.convert(item.persona.admin); u.persona.superadmin = item.persona.superadmin == null ? null : SuperAdminConverter.convert(item.persona.superadmin); u.persona.conductor = item.persona.conductor == null ? null : ConductorConverter.convert(item.persona.conductor); ret.Add(u); } return(ret); } } catch (Exception e) { throw e; } }
public Horario RegistrarHorario(Horario h) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { horario hor = HorarioConverter.convert(h); hor.conductor = db.conductor.Find(h.conductor.id); hor.linea = db.linea.Find(h.linea.id); hor.vehiculo = db.vehiculo.Find(h.vehiculo.id); if (hor.conductor == null) { throw new Exception("No se encontro ningun conductor con ese ID"); } if (hor.linea == null) { throw new Exception("No se encontro ninguna linea con ese ID"); } if (hor.vehiculo == null) { throw new Exception("No se encontro ningun vehiculo con ese ID"); } db.horario.Add(hor); db.SaveChanges(); return(HorarioConverter.convert(hor)); } catch (Exception e) { throw e; } } }
public ICollection <Linea> ListarLinea() { try { using (uruguay_busEntities db = new uruguay_busEntities()) { ICollection <linea> lst = (ICollection <linea>)db.linea.ToList(); ICollection <Linea> ret = new List <Linea>(); foreach (var item in lst) { Linea l = LineaConverter.convert(item); foreach (var t in item.tramo) { Tramo nuevo = TramoConverter.convert(t); nuevo.parada = ParadaConverter.convert(t.parada); l.tramos.Add(nuevo); } ret.Add(l); } return(ret); } } catch (Exception e) { throw e; } }
public Usuario ObtenerUsuario(string correo) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { usuario u = db.usuario.Where(x => x.persona.correo.Equals(correo)).FirstOrDefault(); if (u == null) { return(null); } Usuario ret = UsuarioConverter.convert(u); ret.persona = PersonaConverter.convert(u.persona); ret.persona.conductor = ConductorConverter.convert(u.persona.conductor); ret.persona.admin = AdminConverter.convert(u.persona.admin); ret.persona.superadmin = SuperAdminConverter.convert(u.persona.superadmin); return(ret); } catch (Exception e) { throw e; } } }
public Usuario RegistrarUsuario(Usuario u) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { if (db.persona.Where(x => x.correo == u.persona.correo).Count() != 0) { throw new Exception("Ya existe un usuario con ese correo"); } usuario usu = UsuarioConverter.convert(u); persona per = PersonaConverter.convert(u.persona); per.contrasenia = DAL_Usuario.GetHash(per.contrasenia); usu.persona = per; per.usuario = usu; db.persona.Add(per); db.SaveChanges(); Usuario usuarioRet = UsuarioConverter.convert(usu); Persona personaRet = PersonaConverter.convert(per); usuarioRet.persona = personaRet; return(usuarioRet); } catch (Exception e) { throw e; } } }
public ICollection <Horario> ListarHorarios() { using (uruguay_busEntities db = new uruguay_busEntities()) { try { ICollection <Horario> ret = new List <Horario>(); ICollection <horario> horarios = (ICollection <horario>)db.horario.ToList(); foreach (var item in horarios) { Horario h = HorarioConverter.convert(item); h.vehiculo = VehiculoConverter.convert(item.vehiculo); h.conductor = ConductorConverter.convert(item.conductor); h.linea = LineaConverter.convert(item.linea); ret.Add(h); } return(ret); } catch (Exception e) { throw e; } } }
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 List <VehiculoCercanoDTO> ListarVehiculosCercanos(int idParada, int?idUsuario = null) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { var parada = db.parada.FirstOrDefault(x => x.id == idParada); if (parada == null) { throw new Exception("No se encontro ninguna parada con ese ID"); } var Res = db.viaje .Where(x => x.finalizado == false).ToList()? .Where(x => x.horario.linea.tramo.Any(y => y.parada_id == idParada) && !x.paso_por_parada.Any(y => y.parada_id == idParada) && x.paso_por_parada.Any(y => y.parada_id == GetParadaAnterior(x.horario.linea.id, idParada)) ).ToList() .Select(x => new VehiculoCercanoDTO() { vehiculo_id = x.horario.vehiculo.id, pasaje_reservado = idUsuario == null ? false : x.pasaje.Any(y => y.usuario.id == idUsuario) } ).ToList(); return(Res); } catch (Exception e) { throw e; } } }
public ICollection <Parada> obtenerParadasDeLinea(int idLinea) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { ICollection <parada> ret = new List <parada>(); IDictionary <int, parada> dicParada = new SortedDictionary <int, parada>(); linea l = db.linea.Where(x => x.id == idLinea).FirstOrDefault(); if (l == null) { throw new Exception("No se encontró ninguna linea con ese ID"); } foreach (var item in l.tramo) { dicParada.Add(item.numero, item.parada); } ret = dicParada.Values; return(ParadaConverter.convert(ret)); } catch (Exception e) { throw e; } } }
public Vehiculo ModificarVehiculo(Vehiculo v) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { if (v == null || db.vehiculo.Find(v.id) == null) { throw new Exception("No se encontro ningun vehiculo con ese ID"); } vehiculo veh = db.vehiculo.Find(v.id); veh.cant_asientos = v.cant_asientos; veh.marca = v.marca; veh.modelo = v.modelo; veh.matricula = v.matricula; db.SaveChanges(); return(VehiculoConverter.convert(veh)); } catch (Exception e) { throw e; } } }
public Linea ModificarLinea(Linea l) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { if (l == null) { throw new Exception("Se deve enviar el objeto que deceas modificar"); } if (l.nombre == null) { throw new Exception("El nombre que se desa modificar no puede estar vacio"); } linea LinMod = db.linea.Find(l.id); if (LinMod == null) { throw new Exception("La linea que se desa modificar no existe"); } LinMod.nombre = l.nombre; db.SaveChanges(); return(LineaConverter.convert(LinMod)); } catch (Exception e) { throw e; } } }
public Pasaje CancelarPasaje(int idPasaje) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { pasaje pasaje = db.pasaje.FirstOrDefault(x => x.id == idPasaje); if (pasaje == null) { return(null); } Pasaje ret = PasajeConverter.convert(pasaje); db.pasaje.Remove(pasaje); db.SaveChanges(); return(ret); } catch (Exception e) { throw e; } } }
public Conductor ModificarConductor(Conductor c) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { if (c == null) { throw new Exception("No se encontro ningun conductor con ese ID"); } conductor con = db.conductor.Find(c.id); if (con == null) { throw new Exception("No se encontro ningun conductor con ese ID"); } con.vencimiento_libreta = c.vencimiento_libreta; db.SaveChanges(); c = ConductorConverter.convert(con); c.persona = PersonaConverter.convert(con.persona); return(c); } catch (Exception e) { throw e; } } }
public Usuario IniciarSesion(string correo, string contrasenia) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { persona per = db.persona.Where(x => x.correo == correo).FirstOrDefault(); if (per == null) { return(null); } if (!DAL_Usuario.CompareHash(contrasenia, per.contrasenia)) { return(null); } //Persona personaRet = PersonaConverter.convert(per); Usuario usuarioRet = UsuarioConverter.convert(per.usuario); usuarioRet.persona = PersonaConverter.convert(per); usuarioRet.persona.conductor = ConductorConverter.convert(per.conductor); usuarioRet.persona.admin = AdminConverter.convert(per.admin); usuarioRet.persona.superadmin = SuperAdminConverter.convert(per.superadmin); return(usuarioRet); } catch (Exception e) { throw e; } } }
private decimal PrecioRecorrido(int idlinea, int idParadaOrigen, int idParadaDestino, DateTime fecha) { DAL_Global DAL_G = new DAL_Global(); var paradas = DAL_G.obtenerParadasDeLinea(idlinea).Select(x => ParadaConverter.convert(x)).ToList(); decimal precio = 0; bool EstoyEnRecorrido = false; using (uruguay_busEntities db = new uruguay_busEntities()) { foreach (var parada in paradas) { if (EstoyEnRecorrido) { var valor = db.parada.FirstOrDefault(x => x.id == parada.id)?.tramo .FirstOrDefault(x => x.linea.id == idlinea)?.precio .OrderByDescending(x => x.fecha_validez) .FirstOrDefault(x => x.fecha_validez.Date <= fecha.Date)?.valor ?? 0; precio += valor; if (parada.id == idParadaDestino) { return(precio); } } else if (parada.id == idParadaOrigen) { EstoyEnRecorrido = true; } } } return(precio); }
public void IniciarViaje(int idViaje) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { viaje v = db.viaje.Find(idViaje); if (v == null) { throw new Exception("No se encontro ningun viaje con ese ID"); } if (v.finalizado == true) { throw new Exception("No se pudo marcar el viaje como iniciado porque ya está marcado como finalizado."); } v.finalizado = false; db.SaveChanges(); } catch (Exception e) { throw e; } } }
public ICollection <Conductor> ListarConductores() { try { using (uruguay_busEntities db = new uruguay_busEntities()) { ICollection <Conductor> ret = new List <Conductor>(); ICollection <conductor> conductores = (ICollection <conductor>)db.conductor.ToList(); foreach (var item in conductores) { Conductor c = ConductorConverter.convert(item); c.persona = PersonaConverter.convert(item.persona); c.persona.usuario = UsuarioConverter.convert(item.persona.usuario); c.persona.admin = AdminConverter.convert(item.persona.admin); c.persona.superadmin = SuperAdminConverter.convert(item.persona.superadmin); ret.Add(c); } return(ret); } } catch (Exception e) { throw e; } }
public Pasaje ReservarPasaje(int idViaje, int idParadaOrigen, int idParadaDestino, int idUsuario, int?asiento = null) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { var viaje = db.viaje.FirstOrDefault(x => x.id == idViaje); if (viaje == null) { throw new Exception("No se encontro ningun viaje con ese ID"); } if (viaje.horario.linea.tramo.Any(t => t.parada.id == idParadaOrigen) && viaje.horario.linea.tramo.Any(t => t.parada.id == idParadaDestino)) { int no = viaje.horario.linea.tramo.Where(t => t.parada.id == idParadaOrigen).First().numero; int nd = viaje.horario.linea.tramo.Where(t => t.parada.id == idParadaDestino).First().numero; if (no >= nd) { throw new Exception("La parada de origen es posterior a la de destino"); } } else { throw new Exception("Una o ambas paradas no pertenecen a la linea"); } var paradaOri = db.parada.FirstOrDefault(x => x.id == idParadaOrigen); var paradaDest = db.parada.FirstOrDefault(x => x.id == idParadaDestino); var usuario = db.usuario.FirstOrDefault(x => x.id == idUsuario); if (usuario == null) { throw new Exception("No se encontro ningun usuario con ese ID"); } var pasaje = new pasaje() { //parada_id_destino = idParadaDestino, parada_destino = paradaDest, //parada_id_origen = idParadaOrigen, parada_origen = paradaOri, //viaje_id = idViaje, viaje = viaje, usuario_id = idUsuario, usuario = usuario, asiento = asiento, }; db.pasaje.Add(pasaje); db.SaveChanges(); return(PasajeConverter.convert(pasaje)); } catch (Exception e) { throw e; } } }
public Linea RegistrarLinea(Linea l) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { // convertir linea // convertir tramos y asociarlos a la linea // para cada tramo obtener la parada desde la DB y asociarlo // para cada tramo convertir y asociar el precio linea lin = LineaConverter.convert(l); foreach (var t in l.tramos) { tramo tra = TramoConverter.convert(t); lin.tramo.Add(tra); parada par = db.parada.Find(t.parada.id); if (par == null) { throw new Exception("No se encontro ninguna parada con ese ID"); } tra.parada = par; tra.precio.Add(PrecioConverter.convert(t.precio.First())); } // guardo la linea, sus tramos y sus precios (las paradas no, esas ya estaban en a DB) db.linea.Add(lin); //foreach (var tra in lin.tramo) //{ // db.tramo.Add(tra); // db.precio.Add(tra.precio.First()); //} db.SaveChanges(); // Hago las conversiones inversas y las asociaciones l = LineaConverter.convert(lin); foreach (var tra in lin.tramo) { Tramo t = TramoConverter.convert(tra); l.tramos.Add(t); t.parada = ParadaConverter.convert(tra.parada); precio pre = db.precio.FirstOrDefault(x => x.linea_id == l.id && x.parada_id == t.parada.id); Precio p = PrecioConverter.convert(pre); t.precio.Add(p); } return(l); } catch (Exception e) { throw e; } } }
public void AsignarRol(int idUsuario, Rol rol, DateTime?fechaVencLibreta) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { persona per = db.usuario.Find(idUsuario).persona; if (per == null) { throw new Exception("El ID del usuario es incorecto."); } if (rol.Equals(Rol.CONDUCTOR)) { if (fechaVencLibreta == null) { throw new Exception("Se deve ingresar la fecha de vencimiento de la libreta."); } if (!db.conductor.Any(x => x.id == per.id)) { conductor con = new conductor(); con.persona = per; con.vencimiento_libreta = (DateTime)fechaVencLibreta; db.conductor.Add(con); } } else if (rol.Equals(Rol.ADMIN)) { if (!db.admin.Any(x => x.id == per.id)) { admin adm = new admin(); adm.persona = per; db.admin.Add(adm); } } else if (rol.Equals(Rol.SUPERADMIN)) { if (!db.superadmin.Any(x => x.id == per.id)) { superadmin spm = new superadmin(); spm.persona = per; db.superadmin.Add(spm); } } db.SaveChanges(); } catch (Exception e) { throw e; } } }
public ICollection <Vehiculo> ListarVehiculos() { using (uruguay_busEntities db = new uruguay_busEntities()) { try { return(VehiculoConverter.convert(db.vehiculo.ToList())); } catch (Exception e) { throw e; } } }
public bool CorreoExiste(string correo) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { return(db.usuario.Any(x => x.persona.correo == correo)); } catch (Exception e) { throw e; } } }
public Horario ModificarHorario(Horario h) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { horario horarioModificado = db.horario.Find(h.id); if (h.hora != null) { horarioModificado.hora = h.hora; } if (h.conductor != null) { conductor conductor = db.conductor.Find(h.conductor.id); if (conductor.Equals(null)) { throw new Exception("El conductor que se desa asociar al horario no existe"); } horarioModificado.conductor = conductor; } if (h.vehiculo != null) { vehiculo vehiculo = db.vehiculo.Find(h.vehiculo.id); if (vehiculo.Equals(null)) { throw new Exception("El vehiculo que se desa asociar al horario no existe"); } horarioModificado.vehiculo = vehiculo; } db.Entry(horarioModificado).State = EntityState.Modified; db.SaveChanges(); return(HorarioConverter.convert(horarioModificado)); } catch (Exception e) { throw e; } } }
public Tramo ModificarTramo(Precio p) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { if (p == null) { throw new Exception("Se deve enviar el objeto que deceas modificar"); } if (p.tramo == null) { throw new Exception("Se deve enviar el objeto que deceas modificar"); } tramo TramMod = db.tramo.Where(x => x.parada_id == p.tramo.parada.id && x.linea_id == p.tramo.linea.id).FirstOrDefault(); if (TramMod == null) { throw new Exception("Se deve enviar el objeto que deceas modificar"); } TramMod.tiempo = p.tramo.tiempo; if (p.valor >= 0) { precio pre = new precio() { fecha_validez = p.fecha_validez, valor = p.valor, tramo = TramMod, linea_id = TramMod.linea_id, parada_id = TramMod.parada_id }; db.precio.Add(pre); TramMod.precio.Add(pre); } db.SaveChanges(); return(TramoConverter.convert(TramMod)); } catch (Exception e) { throw e; } } }
public ICollection <Parada> ListarParadas() { try { using (uruguay_busEntities db = new uruguay_busEntities()) { ICollection <parada> lstParadas = (ICollection <parada>)db.parada.ToList(); Console.WriteLine(lstParadas.Count()); return(ParadaConverter.convert(lstParadas)); } } 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 Parada RegistrarParada(Parada p) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { parada par = ParadaConverter.convert(p); db.parada.Add(par); db.SaveChanges(); return(ParadaConverter.convert(par)); } catch (Exception e) { throw e; } } }
private List <int> GetCantAsientosDisponiblies(viaje Viaje, int idParadaOrigen, int idParadaDestino) { DAL_Global DAL_G = new DAL_Global(); var paradas = DAL_G.obtenerParadasDeLinea(Viaje.horario.linea.id).Select(x => ParadaConverter.convert(x)).ToList(); var res = new List <int>(); List <int> ParadasI = ParadasIntermedias(Viaje.horario.linea.id, idParadaOrigen, idParadaDestino); using (uruguay_busEntities db = new uruguay_busEntities()) { for (int i = 1; i < Viaje.horario.vehiculo.cant_asientos; i++) { var pasajesParaElAsiento = Viaje.pasaje.Where(x => x.asiento == i).ToList(); if (pasajesParaElAsiento.Count() == 0) { res.Add(i); } else { var asientoDisponible = true; foreach (var pasaje in pasajesParaElAsiento) { if (ParadasI.Intersect(ParadasIntermedias(Viaje.horario.linea.id, pasaje.parada_id_origen, pasaje.parada_id_destino)).Count() == 0) { continue; } asientoDisponible = pasaje.parada_id_destino == idParadaOrigen || pasaje.parada_id_origen == idParadaDestino; if (!asientoDisponible) { break; } } if (asientoDisponible) { res.Add(i); } } } } return(res); }
public Vehiculo RegistrarVehiculo(Vehiculo v) { using (uruguay_busEntities db = new uruguay_busEntities()) { try { vehiculo veh = VehiculoConverter.convert(v); veh.latitud = (decimal) - 34.34; veh.longitud = (decimal) - 56.71; db.vehiculo.Add(veh); db.SaveChanges(); return(VehiculoConverter.convert(veh)); } catch (Exception e) { throw e; } } }