Пример #1
0
        public static pasaje convert(Pasaje p)
        {
            if (p == null)
            {
                return(null);
            }

            pasaje ret = new pasaje()
            {
                id        = p.id,
                asiento   = p.asiento,
                usado     = p.usado,
                documento = p.documento,
            };

            if (!p.tipo_documento.Equals(null))
            {
                ret.tipo_documento = (int)p.tipo_documento;
            }
            else
            {
                ret.tipo_documento = null;
            }
            return(ret);
        }
        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 ActionResult DeleteConfirmed(int id)
        {
            pasaje pasaje = db.pasaje.Find(id);

            db.pasaje.Remove(pasaje);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        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 ActionResult Edit([Bind(Include = "Idpasaje,nombrepasajero,origen,destino,fecha,fechasalida,patente,chofer,precio,auxiliar,asiento")] pasaje pasaje)
 {
     if (ModelState.IsValid)
     {
         db.Entry(pasaje).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Idpasaje = new SelectList(db.salidabus, "Idsalida", "chofer", pasaje.Idpasaje);
     return(View(pasaje));
 }
        // GET: pasajes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            pasaje pasaje = db.pasaje.Find(id);

            if (pasaje == null)
            {
                return(HttpNotFound());
            }
            return(View(pasaje));
        }
        // GET: pasajes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            pasaje pasaje = db.pasaje.Find(id);

            if (pasaje == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Idpasaje = new SelectList(db.salidabus, "Idsalida", "chofer", pasaje.Idpasaje);
            return(View(pasaje));
        }
        public bool ValidarPasaje(int idPasaje, int idViaje, int idParada)
        {
            using (uruguay_busEntities db = new uruguay_busEntities())
            {
                try
                {
                    pasaje p = db.pasaje.Find(idPasaje);

                    if (p == null)
                    {
                        return(false);
                    }

                    if (p.usado)
                    {
                        return(false);
                    }

                    if (!p.parada_id_origen.Equals(idParada))
                    {
                        return(false);
                    }

                    if (!p.viaje_id.Equals(idViaje))
                    {
                        return(false);
                    }

                    p.usado = true;
                    db.SaveChanges();

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