コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }