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