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