Пример #1
0
        //
        // GET: /Registro/EliminarSede

        public ActionResult EliminarSede(int clave)
        {
            SedeOnline so = SedeOnline.obtenerSedeConClave(clave);
            Persona    p  = getUsuario();
            Olimpiada  o  = null;

            if (so != null)
            {
                o = Olimpiada.obtenerOlimpiadaConClave(so.omi, so.tipoOlimpiada);
            }

            if (so == null || !tienePermisos(o.registroActivo || o.registroSedes, so.estado) ||
                (!p.esSuperUsuario() && !o.registroSedes))
            {
                return(RedirectTo(Pagina.HOME));
            }

            List <MiembroDelegacion> miembros = MiembroDelegacion.obtenerMiembrosEnSede(clave);

            if (miembros.Count > 0)
            {
                return(RedirectTo(Pagina.HOME));
            }

            so.borrar();

            // Se registra la telemetria
            Log.add(Log.TipoLog.REGISTRO, "Usuario " + getUsuario().nombreCompleto + " elimino la sede " +
                    so.nombre + " del estado " + so.estado);

            return(RedirectTo(Pagina.REGISTRO, new { omi = so.omi, estado = so.estado }));
        }
Пример #2
0
        //
        // GET: /Registro/Delegacion

        public ActionResult Delegacion(string omi = null, string estado = null, TipoOlimpiada tipo = TipoOlimpiada.OMI)
        {
            if (omi == null)
            {
                omi = Olimpiada.obtenerMasReciente(yaEmpezada: false).numero;
            }

            failSafeViewBag();
            Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo);

            ViewBag.omi = o == null ? new Olimpiada() : o;
            if (o == null || !tienePermisos(o.registroActivo || o.registroSedes, estado))
            {
                ViewBag.permisos = true;
                return(View(new List <MiembroDelegacion>()));
            }

            Persona p = getUsuario();

            ViewBag.invitaciones = false;

            if (!p.esSuperUsuario())
            {
                if (estado == null)
                {
                    return(RedirectTo(Pagina.HOME));
                }
                Estado e = Estado.obtenerEstadoConClave(estado);
                ViewBag.estado       = e;
                ViewBag.invitaciones =
                    Archivos.existeArchivo(Archivos.Folder.INVITACIONES, omi + "\\" + estado + "\\" + e.ISO + "-1.pdf") ||
                    Archivos.existeArchivo(Archivos.Folder.INVITACIONES, omi + "\\" + estado + "\\S-" + e.ISO + "-1.pdf") ||
                    Archivos.existeArchivo(Archivos.Folder.INVITACIONES, omi + "\\" + estado + "\\P-" + e.ISO + "-1.pdf");
            }

            List <MiembroDelegacion> registrados = MiembroDelegacion.obtenerMiembrosDelegacion(omi, p.esSuperUsuario() ? null : estado, o.tipoOlimpiada);

            ViewBag.hayResultados = Resultados.hayResultadosParaOMI(o.numero);
            if (o.esOnline)
            {
                List <SedeOnline> sedes = SedeOnline.obtenerSedes(omi, p.esSuperUsuario() ? null : estado, tipo);
                Dictionary <int, List <MiembroDelegacion> > miembrosPorSede = new Dictionary <int, List <MiembroDelegacion> >();
                foreach (SedeOnline sede in sedes)
                {
                    List <MiembroDelegacion> miembrosEnSede = MiembroDelegacion.obtenerMiembrosEnSede(sede.clave);
                    miembrosPorSede.Add(sede.clave, miembrosEnSede);
                }
                ViewBag.miembrosPorSede = miembrosPorSede;
                ViewBag.sedes           = sedes;
            }

            return(View(registrados));
        }