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 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 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; } } }