public ActionResult ReservaOrganizador(ReservaOrganizadorModel model) { using (var context = new inf245netsoft()) { try { for (int i = 0; i < model.idFuncion.Length; i++) if (model.eliminar[i]) { if (model.idAsiento[i] < 0) { var ZXF = context.ZonaxFuncion.Find(model.idFuncion[i], model.idZona[i]); ZXF.cantReservaOrganizador--; ZXF.cantLibres++; } else { var asientoReal = context.AsientosXFuncion.Find(model.idAsiento[i], model.idFuncion[i]); asientoReal.estado = "libre"; } } context.SaveChanges(); } catch (OptimisticConcurrencyException ex) { TempData["tipo"] = "alert alert-warning"; TempData["message"] = "No se pudieron cancelar las reservas"; Redirect("~/Evento/verReservaOrganizador?evento=" + model.idEvento); } } TempData["tipo"] = "alert alert-success"; TempData["message"] = "Las reservas se cancelaron correctamente"; return Redirect("~/Evento/verReservaOrganizador?evento=" + model.idEvento); }
public ActionResult verReservaOrganizador(string evento) { Eventos ev; if (evento == null || (ev = db.Eventos.Find(Int32.Parse(evento))) == null) { TempData["tipo"] = "alert alert-warning"; TempData["message"] = "No existe el evento"; return Redirect("~/Evento"); } var modelo = new ReservaOrganizadorModel(); ViewBag.nombreEvento = ev.nombre; ViewBag.organizador = ev.Organizador.nombOrg; modelo.idEvento = ev.codigo; modelo.nameEvento = ev.nombre; List<int> zonas = new List<int>(0); List<int> funciones = new List<int>(0); List<int> idAsientos = new List<int>(0); List<string> nombresF = new List<string>(0); List<string> nombresZ = new List<string>(0); List<string> asiento = new List<string>(0); List<bool> elimina = new List<bool>(0); foreach (var funcion in ev.Funcion) { foreach (var asientoReal in funcion.AsientosXFuncion) { if (asientoReal.estado == "RESERVAORGANIZADOR") { zonas.Add(asientoReal.Asientos.codZona); nombresZ.Add(asientoReal.Asientos.ZonaEvento.nombre); funciones.Add(funcion.codFuncion); nombresF.Add(funcion.fecha + ""); asiento.Add(asientoReal.Asientos.fila + " " + asientoReal.Asientos.columna); idAsientos.Add(asientoReal.Asientos.codAsiento); elimina.Add(false); } } foreach (var unidad in funcion.ZonaxFuncion) if (!unidad.ZonaEvento.tieneAsientos) { int tot = unidad.cantReservaOrganizador; for (int i = 0; i < tot; i++) { zonas.Add(unidad.ZonaEvento.codZona); funciones.Add(funcion.codFuncion); asiento.Add("No tiene asientos"); nombresZ.Add(unidad.ZonaEvento.nombre); idAsientos.Add(-1); nombresF.Add(funcion.fecha + ""); elimina.Add(false); } } } modelo.idZona = zonas.ToArray(); modelo.idFuncion = funciones.ToArray(); modelo.AsientoXFuncion = asiento.ToArray(); modelo.eliminar = elimina.ToArray(); modelo.nameFuncion = nombresF.ToArray(); modelo.nameZona = nombresZ.ToArray(); modelo.idAsiento = idAsientos.ToArray(); return View("ReservaOrganizador", modelo); }