/// <summary>
        /// <para>Muestra una vista con la calificación y efectividad por habilidades obtenida en una actividad</para>
        /// </summary>
        /// <param name="idActividadDe">Identificador de la actividad resuelta</param>
        /// <returns></returns>
        public ActionResult ProgresoHabilidades(string idActividadDe)
        {
            if (Session["personaLogin"] != null)
            {
                LogicEncriptacionMetodos _objDe           = new LogicEncriptacionMetodos();
                int                       idActividad     = int.Parse(_objDe.Decrypt(idActividadDe));
                PersonaEntidad            objAlumno       = (PersonaEntidad)Session["personaLogin"];
                LogicCalificacion         objCalifEntidad = new LogicCalificacion();
                List <EfectividadEntidad> lista           = new List <EfectividadEntidad>();
                if ((string)Session["tipoActividad"] == "P")
                {
                    ViewBag.calificacion = Session["calif"];
                    lista.AddRange((List <EfectividadEntidad>)Session["efectividadObtenida"]);
                }
                else
                {
                    LogicEfectividad _objLogicEfectividad = new LogicEfectividad();
                    lista = _objLogicEfectividad.EfectividadXactividad(objAlumno.idAlumno, idActividad);
                    ViewBag.calificacion = objCalifEntidad.consultarCalificacionObtenida(objAlumno.idAlumno, idActividad);
                }
                ViewBag.idLeccion              = Session["idLeccion"];
                ViewBag.numeroLeccion          = Session["numeroLeccion"];
                Session["tipoActividad"]       = "";
                Session["efectividad"]         = null;
                Session["efectividadObtenida"] = null;
                Session["calif"] = 0;
                return(View(lista));
            }
            LogicEncriptacionMetodos _objSeguridad = new LogicEncriptacionMetodos();
            var op = _objSeguridad.Encrypt("c");

            return(RedirectToAction("Oops", "Login", new { @area = "", N = op }));
        }
        private void califActividadesPracticas(List <DatosDeVerificacionRespuestaEntidad> ListRespuesta, List <string> listVerificacion, bool ultimaPregunta)
        {
            LogicCalificacion objCalificacionEntidad = new LogicCalificacion();
            LogicPregunta     objPreguntaEnt         = new LogicPregunta();
            int totalCorrectas = 0;

            foreach (var item in listVerificacion)
            {
                if (item.Contains("C"))
                {
                    totalCorrectas++;
                }
            }
            PreguntaEntidad objPregunta          = objPreguntaEnt.consultarPreguntaIdPregunta(ListRespuesta[0].idPregunta);
            decimal         calificacionObtenida = objCalificacionEntidad.calculoCalificacion(ListRespuesta.Count(), totalCorrectas, objPregunta.ponderacion);

            List <EfectividadEntidad> _listaEfectividadEntidad         = new List <EfectividadEntidad>();
            List <EfectividadEntidad> _listaEfectividadObtenidaEntidad = new List <EfectividadEntidad>();
            int indice = 0;

            if (Session["efectividad"] != null)
            {
                _listaEfectividadEntidad         = (List <EfectividadEntidad>)Session["efectividad"];
                _listaEfectividadObtenidaEntidad = (List <EfectividadEntidad>)Session["efectividadObtenida"];
            }
            if (_listaEfectividadEntidad.Exists(C => C.tipoEfectividad == objPregunta.destreza))
            {
                indice = _listaEfectividadEntidad.FindIndex(C => C.tipoEfectividad == objPregunta.destreza);
                _listaEfectividadEntidad[indice].porcentaje         = _listaEfectividadEntidad[indice].porcentaje + objPregunta.ponderacion;
                _listaEfectividadObtenidaEntidad[indice].porcentaje = _listaEfectividadObtenidaEntidad[indice].porcentaje + calificacionObtenida;
            }
            else
            {
                _listaEfectividadEntidad.Add(new EfectividadEntidad {
                    porcentaje = objPregunta.ponderacion, tipoEfectividad = objPregunta.destreza
                });
                _listaEfectividadObtenidaEntidad.Add(new EfectividadEntidad {
                    porcentaje = calificacionObtenida, tipoEfectividad = objPregunta.destreza
                });
            }
            if (ultimaPregunta)
            {
                int contador = 0;
                foreach (var item in _listaEfectividadObtenidaEntidad)
                {
                    item.porcentaje = Math.Round((item.porcentaje * 100) / _listaEfectividadEntidad[contador].porcentaje, 2);
                    contador++;
                }
            }
            Session["efectividad"]         = _listaEfectividadEntidad;
            Session["efectividadObtenida"] = _listaEfectividadObtenidaEntidad;
            if (Session["calif"] != null)
            {
                Session["calif"] = Math.Round((decimal)Session["calif"] + calificacionObtenida, 2);
            }
            else
            {
                Session["calif"] = calificacionObtenida;
            }
        }
        private static void califActividadesPracticas(List <DatosDeVerificacionRespuestaEntidad> ListRespuesta, List <string> listVerificacion)
        {
            LogicCalificacion objCalificacionEntidad = new LogicCalificacion();
            LogicPregunta     objPreguntaEnt         = new LogicPregunta();
            int totalCorrectas = 0;

            foreach (var item in listVerificacion)
            {
                if (item.Contains("C"))
                {
                    totalCorrectas++;
                }
            }
            PreguntaEntidad objPregunta          = objPreguntaEnt.consultarPreguntaIdPregunta(ListRespuesta[0].idPregunta);
            decimal         calificacionObtenida = objCalificacionEntidad.calculoCalificacion(ListRespuesta.Count(), totalCorrectas, objPregunta.ponderacion);

            if (objPregunta.destreza == "R")
            {
                globalVar.califTR = globalVar.califTR + objPregunta.ponderacion;
                globalVar.efectR  = globalVar.efectR + calificacionObtenida;
            }
            if (objPregunta.destreza == "L")
            {
                globalVar.califTL = globalVar.califTL + objPregunta.ponderacion;
                globalVar.efectL  = globalVar.efectL + calificacionObtenida;
            }
            if (objPregunta.destreza == "G")
            {
                globalVar.califTG = globalVar.califTG + objPregunta.ponderacion;
                globalVar.efectG  = globalVar.efectG + calificacionObtenida;
            }
            if (globalVar.ultP)
            {
                if (globalVar.efectR != 0)
                {
                    globalVar.efectR = (globalVar.efectR * 100) / globalVar.califTR;
                }
                if (globalVar.efectL != 0)
                {
                    globalVar.efectL = (globalVar.efectL * 100) / globalVar.califTL;
                }
                if (globalVar.efectG != 0)
                {
                    globalVar.efectG = (globalVar.efectG * 100) / globalVar.califTG;
                }
            }
            globalVar.calificacion = globalVar.calificacion + calificacionObtenida;
        }
        public ActionResult Calificacion(string idActividadDe)
        {
            if (Session["personaLogin"] != null)
            {
                LogicEncriptacionMetodos _objDe           = new LogicEncriptacionMetodos();
                int                       idActividad     = int.Parse(_objDe.Decrypt(idActividadDe));
                PersonaEntidad            objAlumno       = (PersonaEntidad)Session["personaLogin"];
                LogicCalificacion         objCalifEntidad = new LogicCalificacion();
                List <EfectividadEntidad> lista           = new List <EfectividadEntidad>();
                ViewBag.calificacion = globalVar.calificacion;
                if (globalVar.califTR >= 1)
                {
                    lista.Add(new EfectividadEntidad {
                        tipoEfectividad = "R", porcentaje = globalVar.efectR
                    });
                }
                if (globalVar.califTL >= 1)
                {
                    lista.Add(new EfectividadEntidad {
                        tipoEfectividad = "L", porcentaje = globalVar.efectL
                    });
                }
                if (globalVar.califTG >= 1)
                {
                    lista.Add(new EfectividadEntidad {
                        tipoEfectividad = "L", porcentaje = globalVar.efectG
                    });
                }
                globalVar.calificacion = 0;
                globalVar.califTR      = 0;
                globalVar.califTL      = 0;
                globalVar.califTG      = 0;
                globalVar.efectL       = 0;
                globalVar.efectR       = 0;
                globalVar.efectG       = 0;
                return(View(lista));
            }

            LogicEncriptacionMetodos _objSeguridad = new LogicEncriptacionMetodos();
            var op = _objSeguridad.Encrypt("d&a");

            return(RedirectToAction("Oops", "Login", new { @area = "", N = op }));
        }