public ActionResult Create(Reservas reservas)
        {
            if (ModelState.IsValid)
            {
                db.Reservas.Add(reservas);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.Estado = new SelectList(db.EstadoDeLaReserva, "Id", "Estado", reservas.Estado);
            ViewBag.IdHabitacion = new SelectList(db.Habitaciones, "Id", "NombreHabitacion", reservas.IdHabitacion);
            ViewBag.IdCliente = new SelectList(db.Usuarios, "Id", "Nombres", reservas.IdCliente);
            return View(reservas);
        }
        public ActionResult Create(Reservas reservas, string id)
        {
            reservas.Estado = 1;// Por defecto
            int IdRol = 0;
            ViewBag.IsCliente = false;
            try
            {
                IdRol = ((int)Session["IdRol"]);
                ViewBag.IsCliente = new UserModel().IsCliente(IdRol);
            }
            catch (NullReferenceException)
            {
                // return RedirectToAction("../Home/LogOut");
            }
            catch (InvalidCastException)
            {
                //return RedirectToAction("../Home/LogOut");
            }
            if (IdRol == 1)
            {
                ViewBag.IsCLiente = true;
                if (string.IsNullOrEmpty(id))
                {

                    return RedirectToAction("../Shared/Error.cstml");

                }

            }
            ViewBag.IdHabitacion = new SelectList(db.Habitaciones, "Id", "NombreHabitacion", reservas.IdHabitacion);
            ViewBag.IdCliente = new SelectList(db.Usuarios.Where(U => U.IdRol == 1), "Id", "Nombres", reservas.IdCliente);
            ViewBag.Estado = new SelectList(db.EstadosDeLaFactura, "Id", "EstadoFactura", 1);
            if (ModelState.IsValid)
            {

                var query = from R in db.Reservas
                            where R.IdHabitacion == reservas.IdHabitacion
                            select R;

                ViewBag.Resultados = query.Count();
                ViewBag.PuedeReserava = true;
                foreach (Reservas R in query.ToList())
                {
                    ViewBag.PuedeReserava = PuedeReservar(R.FechaInical, R.FechaFinal, reservas.FechaInical, reservas.FechaFinal);
                    if (!ViewBag.PuedeReserava)
                    {
                        ViewBag.PuedeReseravar = "La habitacion que intentas Reservar se encuentra ocupada, en este lapso de tiempo lapso (" + R.FechaInical + "-" + R.FechaFinal + " )";
                        break;
                    }
                }
                if (ViewBag.PuedeReserava)
                {
                    var Habitacion = db.Habitaciones.Find(reservas.IdHabitacion);
                    var Cliente = db.Usuarios.Find(reservas.IdCliente);
                    Habitacion.NombreHabitacion = Cliente.Nombres + " " + Cliente.Apellidos;
                    Habitacion.Disponilidad = 2;
                    db.Entry(Habitacion).State = EntityState.Modified;
                    db.Reservas.Add(reservas);
                    db.SaveChanges();
                    return RedirectToAction("Index");

                }
                else
                {
                    return View();
                }
            }
            else
            {
                return View();
            }
        }
 public ActionResult Edit(Reservas reservas)
 {
     if (ModelState.IsValid)
     {
         db.Entry(reservas).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewBag.IdHabitacion = new SelectList(db.Habitaciones, "Id", "NombreHabitacion", reservas.IdHabitacion);
     ViewBag.IdCliente = new SelectList(db.Usuarios, "Id", "Nombres", reservas.IdCliente);
     return View(reservas);
 }