public void revisarVotosAceptacion()
        {
            int    votosTotales         = revisionSolicitudesPreviasMiembroSubirRangoNucleoController.VerSiSolicitado(usernamePK);
            int    votosAceptados       = revisionSolicitudesPreviasMiembroSubirRangoNucleoController.VerTodosSolicitadosAceptados(usernamePK);
            double porcentajeAceptacion = ((double)votosAceptados / (double)votosTotales) * (double)100;

            if ((porcentajeAceptacion > 50 && nombreRolFK != "Activo") || (nombreRolFK == "Activo" && rolNucleoFK == "Coordinador"))
            {
                miembroController.AscenderMiembro(usernamePK, nombreRolFK);
                editorMiembroSolicitaSubirRangoNucleoController.BorrarSolicitudes(usernamePK);
                string       mensaje      = "Su rango ha sido promovido satisfactoriamente";
                Notificacion notificacion = new Notificacion(usernamePK, mensaje, null);
                creadorNotificacionController.CrearNotificacion(notificacion);
                /*Notid=ficacion Aceptacion*/
            }
            else
            {
                int    votosRechazados      = revisionSolicitudesPreviasMiembroSubirRangoNucleoController.VerTodosSolicitadosRechazados(usernamePK);
                double porcentajeRechazados = ((double)votosRechazados / (double)votosTotales) * (double)100;
                if (porcentajeRechazados == 50 && porcentajeAceptacion == 50 && nombreRolFK != "Activo")
                {
                    string       mensaje      = "Su rango no pudo ser promovido dado un empate de votos";
                    Notificacion notificacion = new Notificacion(usernamePK, mensaje, null);
                    creadorNotificacionController.CrearNotificacion(notificacion);
                    editorMiembroSolicitaSubirRangoNucleoController.BorrarSolicitudes(usernamePK);
                }
            }
        }
Ejemplo n.º 2
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"));
        }