// // GET: /Profile/view/ public ActionResult view(string usuario = null, string clave = null, TipoOlimpiada tipo = TipoOlimpiada.OMI, string omi = null) { Persona p = null; limpiarErroresViewBag(); // QR's de competidor vienen en la forma usuario=null;clave=CMX-3;tipo=OMI;omi='30' if (usuario == null && clave != null) { List <MiembroDelegacion> md = MiembroDelegacion.obtenerMiembrosConClave(omi, tipo, clave, aproximarClave: true); if (md.Count == 0) { return(RedirectTo(Pagina.ERROR, 404)); } if (md.Count > 1) { return(RedirectTo(Pagina.DELEGACION, omi + ":" + md[0].estado)); } p = Persona.obtenerPersonaConClave(md[0].claveUsuario); usuario = p.usuario; } if (String.IsNullOrEmpty(usuario)) { if (estaLoggeado()) { p = getUsuario(); ViewBag.tienePeticiones = p.tienePeticiones(); } else { guardarParams(Pagina.LOGIN, Pagina.VIEW_PROFILE, ""); return(RedirectTo(Pagina.LOGIN)); } } else { if (p == null) { p = Persona.obtenerPersonaDeUsuario(usuario); } if (p != null) { Persona u = getUsuario(); if (p.usuario == u.usuario) { ViewBag.tienePeticiones = p.tienePeticiones(); } } else { return(RedirectTo(Pagina.ERROR, 404)); } } // Estas variables de sesión tienen algo cuando se inicia sesión por primera vez y // se va a hacer el enlace de cuentas ViewBag.GUID = ""; if (Session[GUID_STRING] != null && Session[GUID_USER].ToString() == p.clave.ToString()) { ViewBag.GUID = Session[GUID_STRING]; } Session[GUID_STRING] = null; Session[GUID_USER] = null; if (tipo == TipoOlimpiada.OMIS || tipo == TipoOlimpiada.OMIP || TableManager.isOMIPOS(tipo)) { tipo = TipoOlimpiada.OMI; } Medalleros medalleros = Medallero.obtenerMedalleros(Medallero.TipoMedallero.PERSONA, p.clave.ToString()); ViewBag.participaciones = Resultados.obtenerParticipacionesComoCompetidorPara(p.clave, tipo); ViewBag.asistencias = MiembroDelegacion.obtenerParticipaciones(p.clave); ViewBag.medalleros = medalleros; ViewBag.tipo = tipo; return(View(p)); }