コード例 #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/Sede

        public ActionResult Sede(string omi, string estado, TipoOlimpiada tipo, int clave = 0)
        {
            failSafeViewBag();
            Persona   p = getUsuario();
            Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo);

            ViewBag.omi = o == null ? new Olimpiada() : o;

            if (o == null || !tienePermisos(o.registroActivo || o.registroSedes, estado) ||
                (!p.esSuperUsuario() && !o.registroSedes))
            {
                ViewBag.errorInfo = "permisos";
                return(View(new SedeOnline()));
            }

            SedeOnline so = null;

            if (clave > 0)
            {
                so = SedeOnline.obtenerSedeConClave(clave);
                if (so == null || so.estado != estado && !p.esSuperUsuario())
                {
                    ViewBag.errorInfo = "permisos";
                    return(View(new SedeOnline()));
                }
            }

            ViewBag.estado = Estado.obtenerEstadoConClave(estado);
            if (so == null)
            {
                so = new SedeOnline();
            }

            return(View(so));
        }
コード例 #3
0
        public ActionResult Sede(SedeOnline sede)
        {
            Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(sede.omi, sede.tipoOlimpiada);

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

            failSafeViewBag();
            ViewBag.omi = o;
            Persona p = getUsuario();

            if (!p.esSuperUsuario() && !o.registroSedes)
            {
                ViewBag.errorInfo = "permisos";
                return(View(new SedeOnline()));
            }
            if (sede.clave > 0)
            {
                SedeOnline so = SedeOnline.obtenerSedeConClave(sede.clave);
                if (so == null || so.estado != sede.estado && !p.esSuperUsuario())
                {
                    ViewBag.errorInfo = "permisos";
                    return(View(new SedeOnline()));
                }
            }

            ViewBag.omi    = o;
            ViewBag.estado = Estado.obtenerEstadoConClave(sede.estado);

            // Validaciones del modelo
            if (!ModelState.IsValid)
            {
                return(View(sede));
            }

            sede.guardar();
            ViewBag.guardado = true;

            if (sede.clave == 0)
            {
                Log.add(Log.TipoLog.REGISTRO, "Usuario " + p.nombreCompleto + " agregó sede " + sede.nombre + " en el estado " + sede.estado);
            }
            else
            {
                Log.add(Log.TipoLog.REGISTRO, "Usuario " + p.nombreCompleto + " actualizó sede " + sede.nombre + " en el estado " + sede.estado);
            }

            return(View(sede));
        }
コード例 #4
0
        //
        // GET: /Registro/Asistente

        public ActionResult Asistente(string omi, TipoOlimpiada tipo = TipoOlimpiada.NULL, string estado = null, string clave = null)
        {
            Olimpiada o = Olimpiada.obtenerOlimpiadaConClave(omi, tipo == TipoOlimpiada.NULL ? TipoOlimpiada.OMI : tipo);

            if (o == null)
            {
                return(RedirectTo(Pagina.HOME));
            }
            failSafeViewBag();
            ViewBag.omi = o;
            if (!tienePermisos(o.registroActivo || o.registroSedes, estado))
            {
                ViewBag.errorInfo = "permisos";
                return(View(new Persona()));
            }

            Persona p = getUsuario();

            if (!p.esSuperUsuario())
            {
                if (estado == null ||
                    (String.IsNullOrEmpty(clave) &&
                     tipo != TipoOlimpiada.NULL &&
                     !puedeRegistrarOtroMas(o, tipo, estado)))
                {
                    ViewBag.errorInfo = "limite";
                    return(View(new Persona()));
                }

                ViewBag.estado = Estado.obtenerEstadoConClave(estado);
            }

            MiembroDelegacion md = null;

            if (clave == null)
            {
                if (!p.esSuperUsuario() && tipo != TipoOlimpiada.NULL)
                {
                    ViewBag.claveDisponible = MiembroDelegacion.obtenerPrimerClaveDisponible(omi, tipo, estado);
                }
                ViewBag.tipoAsistente = MiembroDelegacion.TipoAsistente.NULL;
            }
            else
            {
                var temp = MiembroDelegacion.obtenerMiembrosConClave(omi, tipo, clave);
                if (temp.Count == 0)
                {
                    ViewBag.errorInfo = "invalido";
                    return(View(new Persona()));
                }
                if (temp.Count > 1)
                {
                    ViewBag.errorInfo = "duplicado";
                    return(View(new Persona()));
                }
                md = temp[0];
                if (!p.esSuperUsuario() && md.estado != estado)
                {
                    ViewBag.errorInfo = "permisos";
                    return(View(new Persona()));
                }
                ViewBag.claveDisponible = md.clave;
                ViewBag.tipoAsistente   = md.tipo;
                ViewBag.estado          = Estado.obtenerEstadoConClave(md.estado);
                ViewBag.nombreEscuela   = md.nombreEscuela;
                ViewBag.claveEscuela    = md.claveEscuela;
                ViewBag.añoEscuela      = md.añoEscuela;
                ViewBag.nivelEscuela    = md.nivelEscuela.ToString();
            }

            ViewBag.md      = md;
            ViewBag.tipo    = tipo;
            ViewBag.estados = Estado.obtenerEstados();
            limpiarErroresViewBag();
            ViewBag.resubmit      = false;
            ViewBag.guardado      = false;
            ViewBag.hayResultados = Resultados.hayResultadosParaOMI(o.numero);
            if (o.esOnline && !p.esSuperUsuario())
            {
                ViewBag.sedes = SedeOnline.obtenerSedes(o.numero, estado, tipo);
            }
            if (md != null && md.sede > 0)
            {
                ViewBag.nombreSede = SedeOnline.obtenerSedeConClave(md.sede).nombre;
            }

            p = md == null ? new Persona() : Persona.obtenerPersonaConClave(md.claveUsuario, completo: true, incluirDatosPrivados: true);
            p.breakNombre();

            List <Ajax.BuscarEscuelas> escuelas = null;

            if (md != null && md.tipo == MiembroDelegacion.TipoAsistente.COMPETIDOR)
            {
                escuelas = Institucion.obtenerEscuelasDeEstado(md.tipoOlimpiada, md.estado);
            }
            else if (estado != null)
            {
                if (tipo != TipoOlimpiada.NULL)
                {
                    escuelas = Institucion.obtenerEscuelasDeEstado(tipo, estado);
                }
            }
            ViewBag.escuelas = escuelas;

            return(View(p));
        }