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