public bool EsValido()
        {
            bool esValido = true;

            if (!ModelState.IsValid)
            {
                esValido = false;
            }
            else
            {
                if (imagenDePerfil != null && esValido)
                {
                    if (!imagenDePerfil.ContentType.Equals("image/png") && !imagenDePerfil.ContentType.Equals("image/jpg") && !imagenDePerfil.ContentType.Equals("image/jpeg"))
                    {
                        esValido = false;
                        AvisosInmediatos.Set(this, "formatoInvalido", "Debe subir una imagen en formato .png o .jpg", AvisosInmediatos.TipoAviso.Error);
                    }
                }
                if (buscadorMiembrosController.GetMiembro(miembro.usernamePK) != null && esValido)
                {
                    esValido = false;
                    AvisosInmediatos.Set(this, "usernamePKInvalido", "Nombre de usuario ya existe. Seleccione otro nombre de usuario", AvisosInmediatos.TipoAviso.Error);
                }
                if (!buscadorMiembrosController.CorreoValido(miembro.email))
                {
                    esValido = false;
                    AvisosInmediatos.Set(this, "emailInvalido", "El correo electrónico ya está asociado a otro usuario. Ingrese otro correo electrónico", AvisosInmediatos.TipoAviso.Error);
                }
            }

            return(esValido);
        }
        public IActionResult OnGet()
        {
            MiembroModel usuario = listaMiembros.Find(x => x.usernamePK == Request.Cookies["usernamePK"]);

            listaMiembros.Remove(usuario);
            if (Request.Cookies["usernamePK"] != null)
            {
                if (idArticuloPK != -1)
                {
                    articulo = informacionArticuloController.GetInformacionArticuloModel(idArticuloPK);

                    articulo.fechaPublicacion = Convertidor.CambiarFormatoFechaAMD(articulo.fechaPublicacion);

                    autoresViejos = informacionArticuloController.GetAutoresArticuloListaStringArray(idArticuloPK);
                    foreach (string[] item in autoresViejos)
                    {
                        listaMiembrosAutores.Add(item[0]);
                    }
                    listaMiembrosAutores.Add(Request.Cookies["usernamePK"]);
                    listaCategoriaTopicosArticulo = informacionArticuloController.GetCategoriaTopicosArticuloString(idArticuloPK);

                    TempData["idArticulo"] = idArticuloPK;

                    for (int i = 0; i < autoresViejos.Count; i++)
                    {
                        inyeccion += "var select = document.getElementById('slctAutor');" + "\n" +
                                     "var option = select[select.selectedIndex];" + "\n" +
                                     "if (!miembrosAutores.includes('" + autoresViejos[i][0] + "')) {" + "\n" +
                                     "const div = document.createElement('div');" +
                                     "const button = document.createElement('input');" + "\n" +
                                     "button.type = \"button\";" + "\n" +
                                     "button.value = \"x\";" + "\n" +
                                     "button.toDelete = '" + autoresViejos[i][0] + "';" + "\n" +
                                     "button.onclick = borrar;" + "\n" +
                                     "miembrosAutores.push('" + autoresViejos[i][0] + "')" + "\n" +
                                     "div.innerHTML = '<label>' + \'" + autoresViejos[i][1] + "\' + '</label><input type=\"hidden\" name=\"listaMiembrosAutores\" value=\"' + \'" + autoresViejos[i][0] + "\' + '\"/>';" + "\n" +
                                     "document.getElementById('autores').appendChild(div);" + "\n" +
                                     "div.appendChild(button)" + "\n" +
                                     "}\n";
                    }


                    if (articulo.estado == EstadoArticulo.EnCorrecciones || articulo.estado == EstadoArticulo.Rechazado)
                    {
                        revisiones     = informacionArticuloController.GetRevisiones(idArticuloPK);
                        estadoAnterior = articulo.estado;
                    }
                }
                else
                {
                    TempData["idArticulo"] = -1;
                }
            }
            else
            {
                AvisosInmediatos.Set(this, "init_session_error", "Por favor inicie sesión para poder enlazar el artículo", AvisosInmediatos.TipoAviso.Error);
                return(Redirect("/Login"));
            }
            return(Page());
        }
        public IActionResult OnPostCrear()
        {
            if (EsValido())
            {
                if (imagenDePerfil != null)
                {
                    var filePath = rutaCarpeta + "/images/ImagenesPerfil/" + miembro.usernamePK + "." + imagenDePerfil.ContentType.Split('/')[1];

                    using (var stream = System.IO.File.Create(filePath))
                    {
                        imagenDePerfil.CopyTo(stream);
                    }

                    miembro.rutaImagenPerfil = "images/ImagenesPerfil/" + miembro.usernamePK + "." + imagenDePerfil.ContentType.Split('/')[1];
                }
                else
                {
                    miembro.rutaImagenPerfil = "images/ImagenesPerfil/default_avatar.png";
                }


                miembro.idiomas     = listaIdiomasSelec;
                miembro.habilidades = listaHabilidadesSelec;
                miembro.pasatiempos = listaPasatiemposSelec;
                creadorMiembrosController.CrearMiembro(miembro);
                Response.Cookies.Append("usernamePK", miembro.usernamePK);
                AvisosInmediatos.Set(this, "sesionIniciada", "Sesión iniciada", AvisosInmediatos.TipoAviso.Exito);
                return(Redirect("/Index"));
            }

            return(Page());
        }
        public IActionResult OnPostAdd()
        {
            this.error = fAQsController.Agregar(categoria, pregunta, respuesta);
            switch (error)
            {
            case 0:
                AvisosInmediatos.Set(this, "exitoAgregar", "Se ha agregado la pregunta y la respuesta con éxito en su respectiva categoría", AvisosInmediatos.TipoAviso.Exito);
                return(Redirect("/CategoriasPregFrec"));

                //TempData["Message"] = "Se ha agregado la pregunta y la respuesta con éxito en su respectiva categoría";
                break;

            case 1:
                AvisosInmediatos.Set(this, "camposIncompletos", "Por favor complete todos los campos antes de solicitar una funcionalidad", AvisosInmediatos.TipoAviso.Error);
                //TempData["Message"] = "Por favor complete todos los campos antes de solicitar una funcionalidad";
                return(Page());

                break;

            case 2:
                AvisosInmediatos.Set(this, "camposRepetidos", "Por favor ingrese otra pregunta y respuesta, ya que su pregunta está repetida para la categoría seleccionada", AvisosInmediatos.TipoAviso.Error);
                return(Page());

                //TempData["Message"] = "Por favor ingrese otra pregunta y respuesta, ya que su pregunta está repetida para la categoría seleccionada";
                break;
            }
            return(Page());
        }
        public IActionResult OnPostEnviar()
        {
            string recomend_final = "Rechazar";

            if (recomendacion == 0)
            {
                recomend_final = "Aceptar";
            }
            else if (recomendacion == 1)
            {
                recomend_final = "Aceptar con Modificaciones";
            }

            double merito = informacionMiembroController.GetMeritos(Request.Cookies["usernamePK"]);

            RevisionModel revision = new RevisionModel();

            revision.opinion        = opinion;
            revision.contribucion   = contribucion;
            revision.forma          = forma;
            revision.estadoRevision = "Finalizada";
            revision.comentarios    = comentario;
            revision.recomendacion  = recomend_final;
            revision.usernameMiemFK = Request.Cookies["usernamePK"];
            revision.idArticuloFK   = idArticuloPK;

            /* Crear nuevo controlador de revisor de artículo */
            revisorArticulosController.ActualizarRevisionArticulo(revision);

            List <ArticuloModel> articulosRevisionFinalizada = buscadorArticuloController.GetArticulosRevisionFinalizada();

            bool revFinalizada = false;

            foreach (ArticuloModel articuloRev in articulosRevisionFinalizada)
            {
                if (idArticuloPK == articuloRev.articuloAID)
                {
                    revFinalizada = true;
                }
            }

            if (revFinalizada)
            {
                string mensaje = "Estimado Coordinador, se ha finalizado las revisiones del articulo " + articulo.titulo + " . Por favor proceder a realizar un veredicto.";
                string url     = "/ArticulosParaRevisionCoordinador";

                Notificacion notificacion = new Notificacion(buscadorMiembrosController.GetMiembroCoordinador().usernamePK, mensaje, url);

                creadorNotificacionController.CrearNotificacion(notificacion);
            }

            AvisosInmediatos.Set(this, "revisionExitosa", "Su revisión se ha efectuado exitosamente", AvisosInmediatos.TipoAviso.Exito);
            return(Redirect("MisArticulosPorRevisar"));
        }
Exemplo n.º 6
0
        public IActionResult OnGet()
        {
            CreadorNotificacionController creadorNotificacionController = new CreadorNotificacionController();

            if (cerrarSesion != null)
            {
                Response.Cookies.Delete("usernamePK");
                AvisosInmediatos.Set(this, "cerrarSesion", "Se ha cerrado la sesión", AvisosInmediatos.TipoAviso.Exito);
                return(Redirect("/Login"));
            }

            return(Page());
        }
        public IActionResult OnPostGuardar()
        {
            if (EsValido())
            {
                articulo.tipo   = TipoArticulo.Corto;
                articulo.estado = EstadoArticulo.EnProgreso;
                almacenadorArticuloController.GuardarArticulo(articulo, listaMiembrosAutores, listaCategoriaTopicosArticulo);
                AvisosInmediatos.Set(this, "articuloGuardado", "Su articulo se guardó", AvisosInmediatos.TipoAviso.Exito);

                return(Redirect("/MisArticulos"));
            }

            return(Page());
        }
Exemplo n.º 8
0
        public bool EsValido()
        {
            bool esValido = true;

            if (usernamePK == null)
            {
                esValido = false;
            }
            else if (buscadorMiembrosController.GetMiembro(usernamePK) == null)
            {
                esValido = false;
                AvisosInmediatos.Set(this, "usernameNoExiste", "Ingrese con un nombre de usuario valido", AvisosInmediatos.TipoAviso.Error);
            }

            return(esValido && ModelState.IsValid);
        }
Exemplo n.º 9
0
        public IActionResult OnPost()
        {
            if (EsValido())
            {
                MiembroModel miembro = buscadorMiembrosController.GetMiembro(usernamePK);
                Response.Cookies.Append("usernamePK", miembro.usernamePK);
                Response.Cookies.Append("nombreRolFK", miembro.nombreRolFK);
                List <Notificacion> listaNotificaciones = informacionMiembroController.GetNotificaciones(usernamePK);
                HttpContext.Session.SetComplexData("listaNotificaciones", listaNotificaciones);
                HttpContext.Session.SetInt32("cantidadNotificacionesNuevas", GetCantidadNotificacionesNuevas(listaNotificaciones));
                AvisosInmediatos.Set(this, "sesionIniciada", "Sesión iniciada", AvisosInmediatos.TipoAviso.Exito);
                return(Redirect("/Index"));
            }

            return(Page());
        }
Exemplo n.º 10
0
 public IActionResult OnPostAsignarRevisor()
 {
     if (listaAsignados.Count == 0)
     {
         AvisosInmediatos.Set(this, "listaAsignadosVacio", "Se necesita agregar a la lista los miembros nucleos que va a asignar como revisores", AvisosInmediatos.TipoAviso.Error);
     }
     {
         foreach (string usernameMiemFK in listaAsignados)
         {
             asignadorRevisoresController.AsignarRevisor(usernameMiemFK, articuloAID);
             ArticuloModel articulo     = informacionArticuloController.GetInformacionArticuloModel(articuloAID);
             Notificacion  notificacion = new Notificacion(usernameMiemFK, "Usted ha sido asignado como revisor del artículo " + articulo.titulo, "/MisArticulosPorRevisar");
             creadorNotificacionController.CrearNotificacion(notificacion);
         }
     }
     return(Redirect("/AsignarRevisor/" + articuloAID));
 }
        public IActionResult OnPostEditar()
        {
            if (EsValido())
            {
                articulo.articuloAID = idArticuloPK;
                articulo.tipo        = TipoArticulo.Link;
                if (estadoAnterior != EstadoArticulo.EnCorrecciones)
                {
                    articulo.estado = EstadoArticulo.EnProgreso;
                }
                editorArticuloController.EditarArticulo(articulo, listaMiembrosAutores, listaCategoriaTopicosArticulo, "");
                AvisosInmediatos.Set(this, "articuloEditado", "Su articulo se editó correctamente", AvisosInmediatos.TipoAviso.Exito);

                return(Redirect("/MisArticulos"));
            }

            return(Page());
        }
        private bool EsValido()
        {
            bool esValido = true;

            if (listaCategoriaTopicosArticulo.Count == 0)
            {
                AvisosInmediatos.Set(this, "listaTopicosArticulo", "Debe seleccionar al menos un tópico para su artículo", AvisosInmediatos.TipoAviso.Error);
                esValido = false;
            }

            if (listaMiembrosAutores.Count == 0)
            {
                AvisosInmediatos.Set(this, "listaMiembrosAutores", "Debe seleccionar al menos un autor para su artículo", AvisosInmediatos.TipoAviso.Error);
                esValido = false;
            }

            return(esValido && ModelState.IsValid);
        }
 public IActionResult OnPostSumar()
 {
     if (Request.Cookies["usernamePK"] != null)
     {
         idArticuloPK = (int)TempData["idArticuloPK"];
         editorArticuloController.AgregarVisita(idArticuloPK);
         SetInformacionArticulo();
         calificacion             = informacionArticuloController.GetCalificacionMiembro(Request.Cookies["usernamePK"], idArticuloPK);
         TempData["visto"]        = 1;
         TempData["idArticuloPK"] = idArticuloPK;
     }
     else
     {
         AvisosInmediatos.Set(this, "init_session_error", "Por favor inicie sesión para poder ver el artículo", AvisosInmediatos.TipoAviso.Error);
         return(Redirect("/Login"));
     }
     return(Page());
 }
        public IActionResult OnPost()
        {
            remitente = Request.Cookies["usernamePK"];

            string filePath = "";

            if (archivoAdjunto != null)
            {
                filePath = rutaCarpeta + "/Correos/" + archivoAdjunto.FileName;
                using (var stream = System.IO.File.Create(filePath))
                {
                    archivoAdjunto.CopyTo(stream);
                }
            }
            enviarEmailController.EnviarMail(destino, remitente, asunto, mensaje, filePath);

            AvisosInmediatos.Set(this, "Correo Enviado", "Su correo ha sido enviado exitosamente", AvisosInmediatos.TipoAviso.Exito);
            return(Redirect("/EnviarCorreo"));
        }
Exemplo n.º 15
0
        public IActionResult OnGet()
        {
            if (Request.Cookies["usernamePK"] != null)
            {
                editorArticuloController.AgregarVisita(idArticuloPK);
                documentosArticuloController.CargarArticuloPDF(idArticuloPK, rutaCarpeta);
                articuloPDF = Convert.ToString(idArticuloPK) + ".pdf";

                calificacion             = informacionArticuloController.GetCalificacionMiembro(Request.Cookies["usernamePK"], idArticuloPK);
                TempData["idArticuloPK"] = idArticuloPK;
                TempData["rutaPDF"]      = articuloPDF;
                TempData["calificacion"] = calificacion;
            }
            else
            {
                AvisosInmediatos.Set(this, "init_session_error", "Por favor inicie sesión para poder ver el artículo", AvisosInmediatos.TipoAviso.Error);
                return(Redirect("/Login"));
            }
            return(Page());
        }
        public IActionResult OnPostRechazar()
        {
            string estadoArticulo = EstadoArticulo.Rechazado;

            editorArticuloController.ActualizarEstadoArticulo(idArticuloPK, estadoArticulo);

            string mensaje = "Su articulo: " + articulo.titulo + " ha sido rechazado.";
            string url     = "/MisArticulos";

            autores = informacionArticuloController.GetAutoresArticuloListaStringArray(idArticuloPK);

            foreach (string[] autor in autores)
            {
                Notificacion notificacion = new Notificacion(autor[0], mensaje, url);
                creadorNotificacionController.CrearNotificacion(notificacion);
            }

            AvisosInmediatos.Set(this, "Aceptar", "El artículo ha sido rechazado", AvisosInmediatos.TipoAviso.Exito);
            return(Redirect("/ArticulosParaRevisionCoordinador"));
        }
 public void VotarRechazar()
 {
     if (nombreRolFK != "Periférico" && nombreRolFK != "Activo")
     {
         AvisosInmediatos.Set(this, "rangoInvalido", "El rango de este miembro no califica para poder pormoverse", AvisosInmediatos.TipoAviso.Error);
     }
     else
     {
         if (nombreRolFK == "Núcleo")
         {
             AvisosInmediatos.Set(this, "rangoPeriferico", "El rango de este miembro no se puede votar para aumentar", AvisosInmediatos.TipoAviso.Error);
         }
         else
         {
             editorMiembroSolicitaSubirRangoNucleoController.VotarRechazar(usernamePK, usernameMiembroFK);
             AvisosInmediatos.Set(this, "exitoVotar", "Su voto ha sido emitido", AvisosInmediatos.TipoAviso.Exito);
             revisarVotosRechazo();
         }
     }
 }
Exemplo n.º 18
0
        public IActionResult OnPostSolicitarColaboracion()
        {
            if (listaAsignados.Count == 0)
            {
                AvisosInmediatos.Set(this, "listaSolicitadosVacio", "Se necesita agregar a la lista los miembros nucleos que solicitara colaboracion", AvisosInmediatos.TipoAviso.Error);
            }
            else
            {
                string mensaje = "Se le solicita colaboracion para revisar el articulo: " + articulo.titulo;
                string url     = "/ArticulosParaRevisionNucleo";
                foreach (string usernameMiemFK in listaSolicitados)
                {
                    creadorSolicitudRevisionController.CrearSolicitudRevision(usernameMiemFK, articuloAID, CreadorSolicitudRevisionController.Solicitado);
                    Notificacion notificacion = new Notificacion(usernameMiemFK, mensaje, url);
                    creadorNotificacionController.CrearNotificacion(notificacion);
                }
            }

            return(Redirect("/AsignarRevisor/" + articuloAID));
        }
        public void OnPostDelete()
        {
            this.error = fAQsController.Borrar(categoria, pregunta, respuesta);
            switch (error)
            {
            case 0:
                AvisosInmediatos.Set(this, "exitoEliminar", "Se ha eliminado la pregunta y la respuesta con éxito en su respectiva categoría", AvisosInmediatos.TipoAviso.Exito);
                //TempData["Message"] = "Se ha eliminado la pregunta y la respuesta con éxito en su respectiva categoría";
                break;

            case 1:
                AvisosInmediatos.Set(this, "camposIncompletos", "Por favor complete todos los campos antes de solicitar una funcionalidad", AvisosInmediatos.TipoAviso.Error);
                //TempData["Message"] = "Por favor complete todos los campos antes de solicitar una funcionalidad";
                break;

            case 3:
                AvisosInmediatos.Set(this, "noEncontrados", "Por favor ingrese otra pregunta y respuesta, ya que su pregunta no se ecuentra para eliminarla", AvisosInmediatos.TipoAviso.Error);
                //TempData["Message"] = "Por favor ingrese otra pregunta y respuesta, ya que su pregunta no se ecuentra para eliminarla";
                break;
            }
        }
        public bool EsValidoEditar()
        {
            bool esValido = true;

            if (!ModelState.IsValid)
            {
                esValido = false;
            }
            else
            {
                if (imagenDePerfil != null && esValido)
                {
                    if (!imagenDePerfil.ContentType.Equals("image/png") && !imagenDePerfil.ContentType.Equals("image/jpg") && !imagenDePerfil.ContentType.Equals("image/jpeg"))
                    {
                        esValido = false;
                        AvisosInmediatos.Set(this, "formatoInvalido", "Debe subir una imagen en formato .png o .jpg", AvisosInmediatos.TipoAviso.Error);
                    }
                }
            }

            return(esValido);
        }
 public void Degradar()
 {
     if (nombreRolFK != "Periférico" && nombreRolFK != "Activo" && nombreRolFK != "Núcleo")
     {
         AvisosInmediatos.Set(this, "rangoInvalido", "El rango de este miembro no califica para degradar", AvisosInmediatos.TipoAviso.Error);
     }
     else
     {
         if (nombreRolFK == "Periférico")
         {
             AvisosInmediatos.Set(this, "rangoPeriferico", "El rango de este miembro no se puede degradar más", AvisosInmediatos.TipoAviso.Error);
         }
         else
         {
             miembroController.DegradarMiembro(usernamePK, nombreRolFK);
             AvisosInmediatos.Set(this, "exitoDegradar", "El rango de este miembro fue degradado exitosamente", AvisosInmediatos.TipoAviso.Exito);
             string       mensaje      = "Su rango ha sido degradado";
             Notificacion notificacion = new Notificacion(usernamePK, mensaje, null);
             creadorNotificacionController.CrearNotificacion(notificacion);
         }
     }
 }
Exemplo n.º 22
0
        public IActionResult OnPostGustar()
        {
            idArticuloPK = (int)TempData["idArticuloPK"];
            articuloPDF  = (string)TempData["rutaPDF"];
            int?calificacionVieja = (int?)TempData["calificacion"];

            if (calificacionVieja == 1)
            {
                AvisosInmediatos.Set(this, "meGusta", "Se ha eliminado su calificación \"Me gusta\"", AvisosInmediatos.TipoAviso.Exito);
                calificacion = null;
            }
            else
            {
                AvisosInmediatos.Set(this, "meGusta", "Su calificación \"Me gusta\" ha sido guardada", AvisosInmediatos.TipoAviso.Exito);
                calificacion             = 1;
                TempData["calificacion"] = 1;
            }
            calificadorDeArticuloController.CalificarArticulo(Request.Cookies["usernamePK"], idArticuloPK, 1);
            TempData["idArticuloPK"] = idArticuloPK;
            TempData["rutaPDF"]      = articuloPDF;

            return(Page());
        }
        public IActionResult OnPostIgual()
        {
            idArticuloPK = (int)TempData["idArticuloPK"];
            int?calificacionVieja = (int?)TempData["calificacion"];

            if (calificacionVieja == 0)
            {
                AvisosInmediatos.Set(this, "nulo", "Se ha eliminado su calificación \"Nulo\"", AvisosInmediatos.TipoAviso.Exito);
                calificacion = null;
            }
            else
            {
                AvisosInmediatos.Set(this, "nulo", "Su calificación \"Nulo\" ha sido guardada", AvisosInmediatos.TipoAviso.Exito);
                calificacion             = 0;
                TempData["calificacion"] = 0;
            }
            calificadorDeArticuloController.CalificarArticulo(Request.Cookies["usernamePK"], idArticuloPK, 0);
            SetInformacionArticulo();
            TempData["visto"]        = 2;
            TempData["idArticuloPK"] = idArticuloPK;

            return(Page());
        }
        public void OnGet()
        {
            usernameMiembroFK = Request.Cookies["usernamePK"];
            if (nombreRolFK != null)
            {
                rolNucleoFK = buscadorMiembroController.GetRango(usernameMiembroFK);
                if (aceptar == 1)
                {
                    VotarPromover();
                }
                else
                {
                    VotarRechazar();
                }
            }
            int puede = revisionSolicitudesPreviasMiembroSubirRangoNucleoController.VerSiRevisar(usernameMiembroFK);

            if (puede == 0)
            {
                AvisosInmediatos.Set(this, "noRevisar", "No hay solicitudes que revisar en este momento", AvisosInmediatos.TipoAviso.Error);
            }
            miembros = buscadorMiembroController.GetListaMiembrosSolicitud(usernameMiembroFK);
        }
Exemplo n.º 25
0
        public IActionResult OnPost()
        {
            SolicitudBusquedaModel solicitud;

            if (tipoBusqueda == "topicos")
            {
                string topicosSelec = "";

                if (listaTopicosSelec.Count == 0)
                {
                    AvisosInmediatos.Set(this, "ningunTopico", "Debe ingresar algún tópico de la lista", AvisosInmediatos.TipoAviso.Error);
                    return(Page());
                }

                solicitud = new SolicitudBusquedaModel(tipoBusqueda, listaTopicosSelec, tiposArticulo, "");
            }
            else
            {
                if (textoBusqueda == null)
                {
                    AvisosInmediatos.Set(this, "busquedaVacio", "Debe ingresar texto en la barra de búsqueda", AvisosInmediatos.TipoAviso.Error);
                    return(Page());
                }
                else
                {
                    List <string> vacia = new List <string>();
                    solicitud = new SolicitudBusquedaModel(tipoBusqueda, vacia, tiposArticulo, textoBusqueda);
                }
            }

            TempData["tipoBusqueda"]  = solicitud.tipoBusqueda;
            TempData["topicos"]       = CrearStringTopicosParaTempData(solicitud.topicos);
            TempData["tiposArticulo"] = solicitud.tiposArticulo;
            TempData["textoBusqueda"] = solicitud.textoBusqueda;

            return(Redirect("/Buscar/1"));
        }
Exemplo n.º 26
0
        public IActionResult OnPostSolicitar()
        {
            if (Request.Cookies["usernamePK"] != null)
            {
                miembros    = buscadorMiembrosController.GetListaNucleosSolicitud();
                usernamePK  = Request.Cookies["usernamePK"];
                nombreRolFK = buscadorMiembrosController.GetRango(usernamePK);
                if (nombreRolFK != "Periférico" && nombreRolFK != "Activo")
                {
                    AvisosInmediatos.Set(this, "rangoInvalido", "El rango de este miembro no califica para la solicitud", AvisosInmediatos.TipoAviso.Error);
                }
                else
                {
                    int puede = revisionSolicitudesPreviasMiembroSubirRangoNucleoController.VerSiSolicitado(usernamePK);

                    if (puede == 0)
                    {
                        miembroSolicitaSubirRangoNucleoEnviadaController.SolicitarSubirRango(usernamePK, miembros);
                        AvisosInmediatos.Set(this, "exitoSolicitud", "La solicitud se envió con éxito", AvisosInmediatos.TipoAviso.Exito);
                        foreach (var miembro in miembros)
                        {
                            string       mensaje      = "Hay que revisar la solicitud para subir de rango del miembro " + usernamePK;
                            Notificacion notificacion = new Notificacion(miembro.usernamePK, mensaje, "/PromoverMiembro");
                            creadorNotificacionController.CrearNotificacion(notificacion);
                        }
                    }
                    else
                    {
                        AvisosInmediatos.Set(this, "fracasoSolicitud", "Usted ha enviado una solicitud que sigue en valoración", AvisosInmediatos.TipoAviso.Error);
                    }
                }
            }


            return(Redirect("/MiPerfil"));
        }
        public IActionResult OnPostEditar()
        {
            if (EsValidoEditar())
            {
                var partialPath = rutaCarpeta + "/images/ImagenesPerfil/" + miembro.usernamePK;
                if (imagenDePerfil != null)
                {
                    var filePath = rutaCarpeta + "/images/ImagenesPerfil/" + miembro.usernamePK + "." + imagenDePerfil.ContentType.Split('/')[1];

                    if (System.IO.File.Exists(partialPath + ".png"))
                    {
                        System.IO.File.Delete(partialPath + ".png");
                    }
                    else if (System.IO.File.Exists(partialPath + ".jpg") || (System.IO.File.Exists(partialPath + ".jpeg")))
                    {
                        if (System.IO.File.Exists(partialPath + ".jpg"))
                        {
                            System.IO.File.Delete(partialPath + ".jpg");
                        }
                        else
                        {
                            System.IO.File.Delete(partialPath + ".jpeg");
                        }
                    }

                    using (var stream = System.IO.File.Create(filePath))
                    {
                        imagenDePerfil.CopyTo(stream);
                    }

                    miembro.rutaImagenPerfil = "images/ImagenesPerfil/" + miembro.usernamePK + "." + imagenDePerfil.ContentType.Split('/')[1];
                }
                else
                {
                    if (System.IO.File.Exists(partialPath + ".png"))
                    {
                        //Ya tenía imagen de perfil y no quiso cambiarla
                        miembro.rutaImagenPerfil = partialPath + ".png";
                    }
                    else if (System.IO.File.Exists(partialPath + ".jpg") || (System.IO.File.Exists(partialPath + ".jpeg")))
                    {
                        if (System.IO.File.Exists(partialPath + ".jpg"))
                        {
                            miembro.rutaImagenPerfil = "images/ImagenesPerfil/" + miembro.usernamePK + ".jpg";
                        }
                        else
                        {
                            miembro.rutaImagenPerfil = "images/ImagenesPerfil/" + miembro.usernamePK + ".jpeg";
                        }
                    }
                    else
                    {
                        miembro.rutaImagenPerfil = "images/ImagenesPerfil/default_avatar.png";
                    }
                }


                miembro.idiomas     = listaIdiomasSelec;
                miembro.habilidades = listaHabilidadesSelec;
                miembro.pasatiempos = listaPasatiemposSelec;
                editorMiembroController.ActualizarMiembro(miembro);
                AvisosInmediatos.Set(this, "perfilEditado", "Su perfil se ha editado correctamente", AvisosInmediatos.TipoAviso.Exito);
                return(Redirect("/MiPerfil"));
            }
            return(Redirect("/MiPerfil"));
        }
        public IActionResult OnPostEnviarRevision()
        {
            if (EsValido())
            {
                articulo.tipo = TipoArticulo.Corto;

                if (estadoAnterior == EstadoArticulo.EnCorrecciones)
                {
                    articulo.estado = EstadoArticulo.EnRevision;
                }
                else
                {
                    articulo.estado = EstadoArticulo.RequiereRevision;
                }

                if (TempData["idArticulo"] != null)
                {
                    articulo.articuloAID = (int)TempData["idArticulo"];
                }

                if (articulo.articuloAID == -1)
                {
                    almacenadorArticuloController.GuardarArticulo(articulo, listaMiembrosAutores, listaCategoriaTopicosArticulo);
                }
                else
                {
                    editorArticuloController.EditarArticulo(articulo, listaMiembrosAutores, listaCategoriaTopicosArticulo, "");
                }

                // Enviar una notificacion a los miembros nucleo
                if (articulo.estado == EstadoArticulo.EnRevision)
                {
                    Notificacion notificacion = new Notificacion();
                    notificacion.mensaje = "El artículo " + articulo.titulo + " ha sido corregido. Por favor proceder a revisar las correcciones.";
                    notificacion.url     = "/RevisarArticulo/" + articulo.articuloAID + "/" + articulo.tipo;

                    foreach (RevisionModel revision in revisiones)
                    {
                        notificacion.usernameFK = revision.usernameMiemFK;
                        creadorNotificacionController.CrearNotificacion(notificacion);
                    }
                }
                else
                {
                    Notificacion notificacion = new Notificacion();
                    notificacion.mensaje = "Un artículo nuevo con título " + articulo.titulo + " requiere revisión para se publicado. Por favor indicar su interés de participar en este proceso.";
                    notificacion.url     = "/ArticulosParaRevisionNucleo";

                    List <MiembroModel> nucleos = buscadorMiembrosController.GetListaMiembrosNucleoModel();
                    foreach (MiembroModel miembroNucleo in nucleos)
                    {
                        notificacion.usernameFK = miembroNucleo.usernamePK;
                        creadorNotificacionController.CrearNotificacion(notificacion);
                    }
                }

                AvisosInmediatos.Set(this, "articuloEnviadoRev", "Su artículo fue enviado a revisión", AvisosInmediatos.TipoAviso.Exito);

                return(Redirect("/MisArticulos"));
            }

            return(Page());
        }