Example #1
0
        public ActionResult editar(int id)
        {
            if (Session["logeado"] == null)
            {
                Session["url"] = Request.Url.AbsoluteUri;
                return(RedirectToAction("login", "Usuario"));
            }

            Cine.Logica.Modelo.Cartelera carte = cMng.obtenerCarteleraPorId(id);

            if (carte == null)
            {
                return(RedirectToAction("administrar", "Administrar"));
            }

            CarteleraMetadata cartelera = generarCartelera(carte);

            List <Sede>     sedes     = sMng.listarSedes();
            List <Pelicula> peliculas = pMng.listarPeliculas();
            List <Versione> versiones = vMng.listarVersiones();

            List <String> errores = (List <String>)TempData["errores"];

            ViewBag.errores     = errores;
            ViewBag.sedes       = sedes;
            ViewBag.peliculas   = peliculas;
            ViewBag.versiones   = versiones;
            ViewBag.fechaInicio = cartelera.FechaInicio;
            ViewBag.fechaFin    = cartelera.FechaFin;
            return(View(cartelera));
        }
Example #2
0
        private CarteleraMetadata generarCartelera(Cine.Logica.Modelo.Cartelera carte)
        {
            CarteleraMetadata c = new CarteleraMetadata();

            if (carte.IdCartelera > 0)
            {
                c.IdCartelera = carte.IdCartelera;
            }
            c.IdSede      = carte.IdSede;
            c.IdPelicula  = carte.IdPelicula;
            c.IdVersion   = carte.IdVersion;
            c.NumeroSala  = carte.NumeroSala;
            c.FechaCarga  = carte.FechaCarga;
            c.HoraInicio  = carte.HoraInicio;
            c.FechaInicio = carte.FechaInicio;
            c.FechaFin    = carte.FechaFin;
            c.Domingo     = carte.Domingo;
            c.Lunes       = carte.Lunes;
            c.Martes      = carte.Martes;
            c.Miercoles   = carte.Miercoles;
            c.Jueves      = carte.Jueves;
            c.Viernes     = carte.Viernes;
            c.Sabado      = carte.Sabado;
            return(c);
        }
Example #3
0
        public ActionResult AgregarCartelera(CarteleraMetadata cartelera)
        {
            if (ModelState.IsValid)
            {
                List <String> errores = new List <string>();

                if (cartelera.FechaInicio > cartelera.FechaFin)
                {
                    errores.Add("La fecha de inicio no puede ser mayor a la fecha de finalizacion");
                }

                if (CarteleraValidador.existeSolapamientoDeSalas(cartelera))
                {
                    errores.Add("Existe otra cartelera con misma Sede y Sala con solapamiento de fechas");
                }

                if (CarteleraValidador.existeOtraCarteleraConMismaPelicula(cartelera))
                {
                    errores.Add("Existe otra cartelera con la misma Pelicula, Version y Sede");
                }

                if (errores.Count == 0)
                {
                    cMng.guardarCartelera(generarCarteleraDesdeModel(cartelera));
                    return(RedirectToAction("Carteleras", "Carteleras"));
                }
                TempData["errores"] = errores;
            }
            return(RedirectToAction("AgregarCartelera", "Carteleras"));
        }
Example #4
0
        public static Boolean existeOtraCarteleraConMismaPelicula(CarteleraMetadata cartelera)
        {
            List <Cine.Logica.Modelo.Cartelera> cartelerasConMismaPelicula = cMng.obtenerCartelerasPorPeliculaVersionYFecha(cartelera.IdSede, cartelera.IdPelicula, cartelera.IdVersion, cartelera.FechaInicio, cartelera.FechaFin);

            if (cartelerasConMismaPelicula.Count() != 0)
            {
                if (cartelerasConMismaPelicula.Count() == 1 && cartelerasConMismaPelicula[0].IdCartelera == cartelera.IdCartelera)
                {
                    return(false);
                }
                return(true);
            }
            return(false);
        }
Example #5
0
        public static Boolean existeSolapamientoDeSalas(CarteleraMetadata cartelera)
        {
            List <Cine.Logica.Modelo.Cartelera> cartelerasEnLaMismaSede = cMng.obtenerCartelerasPorSedeSalaYFecha(cartelera.IdSede, cartelera.NumeroSala, cartelera.FechaInicio, cartelera.FechaFin);

            if (cartelerasEnLaMismaSede.Count() != 0)
            {
                /* Esto sirve para cuando voy a editar la cartelera.
                 * Si existe otra cartelera donde se solapan las salas, PERO esa cartelera es la misma a la que estoy intentando actualizar,
                 * no importa que se solapen, porque la cartelera vieja se va a actualizar con la nueva
                 */
                if (cartelerasEnLaMismaSede.Count() == 1 && cartelerasEnLaMismaSede[0].IdCartelera == cartelera.IdCartelera)
                {
                    return(false);
                }
                //if (cartelerasEnLaMismaSede.Count() == 1) return false;


                /* Si puede existir otra cartelera con la misma sala pero agregando el solapamiento por dias, descomentar esto
                 * int diasSolapados = 0;
                 *  foreach(var carte in cartelerasEnLaMismaSede)
                 *  {
                 *      if (cartelera.Domingo == true && carte.Domingo == true) diasSolapados++;
                 *      if (cartelera.Lunes == true && carte.Lunes == true) diasSolapados++;
                 *      if (cartelera.Martes == true && carte.Martes == true) diasSolapados++;
                 *      if (cartelera.Miercoles == true && carte.Miercoles == true) diasSolapados++;
                 *      if (cartelera.Jueves == true && carte.Jueves == true) diasSolapados++;
                 *      if (cartelera.Viernes == true && carte.Viernes == true) diasSolapados++;
                 *      if (cartelera.Sabado == true && carte.Sabado == true) diasSolapados++;
                 *  }
                 *  if(diasSolapados > 0)
                 *  {
                 *      return true
                 *  }
                 */

                return(true);
            }
            return(false);
        }