public PreguntaEntidad consultarPregunta(int _idActividad, int _numPregunta)
        {
            PreguntaEntidad     objPregunta = new PreguntaEntidad();
            LogicTipoPregunta   objTipoPreg = new LogicTipoPregunta();
            LogicApoyo          objApoyo    = new LogicApoyo();
            TipoPreguntaEntidad objTip      = new TipoPreguntaEntidad();

            foreach (DataRow item in objConsultasDB.consultarPregunta(_idActividad, _numPregunta).Rows)
            {
                objTip = objTipoPreg.consultarTipoPreguntaId(Convert.ToInt32(item.ItemArray[6]));
                objPregunta.idPregunta                = Convert.ToInt32(item.ItemArray[1]);
                objPregunta.indicaciones              = item.ItemArray[2].ToString();
                objPregunta.ponderacion               = Convert.ToDecimal(item.ItemArray[3]);
                objPregunta.idActividad               = Convert.ToInt32(item.ItemArray[4]);
                objPregunta.destreza                  = item.ItemArray[5].ToString();
                objPregunta.objTipo                   = objTip;
                objPregunta.objApoyo                  = objApoyo.consultarApoyoId(Convert.ToInt32(item.ItemArray[7].ToString()));
                objPregunta.listaOpciones             = consultarOpciones(Convert.ToInt32(item.ItemArray[1]), objTip.tipo);
                objPregunta.listaRespuesta            = consultarRespuestas(Convert.ToInt32(item.ItemArray[1]));
                objPregunta.listaRespuestaDesordenada = DesordenarListaRespuesta(consultarRespuestas(Convert.ToInt32(item.ItemArray[1])));
                objPregunta.duracion                  = Convert.ToInt32(item.ItemArray[8].ToString());
                objPregunta.mostarOpciones            = bool.Parse(item.ItemArray[9].ToString());
            }
            return(objPregunta);
        }
        /// <summary>
        /// <para>editar una la imagen de una opcion</para>
        /// </summary>
        /// <param name="variosModels"></param>
        public List <int> editarPreguntaCudIMG(VariosModel variosModels)
        {
            PreguntaEntidad objPregunta = variosModels.modelPregunta;
            List <int>      _listOP     = new List <int>();
            DataTable       id          = objIngreso.preguntaCud(int.Parse("2"), objPregunta.idPregunta, objPregunta.indicaciones, objPregunta.ponderacion, objPregunta.idActividad,
                                                                 objPregunta.destreza, objPregunta.idTipo, objPregunta.idApoyo, objPregunta.duracion, objPregunta.mostarOpciones);

            if (variosModels.modelListaRespuesta == null || variosModels.modelListaRespuesta.Count == 0)
            {
                return(_listOP);
            }
            for (int i = 0; i < variosModels.modelListaRespuesta.Count; i++)
            {
                string imgName = DateTime.Now.ToString("yyyy-MM-dd-HH-mm") + "-imgActividad" + System.IO.Path.GetFileName(variosModels.files[i].FileName);
                string path    = System.IO.Path.Combine(HttpContext.Current.Server.MapPath("..//Img//imgActividad"), (DateTime.Now.ToString("yyyy-MM-dd-HH-mm") + "-imgActividad" + System.IO.Path.GetFileName(variosModels.files[i].FileName)));
                variosModels.files[i].SaveAs(path);
                if (variosModels.idOpcionImg[i] == 0)
                {
                    int idOpciones = opcionesCud(int.Parse("3"), int.Parse("0"), imgName, objPregunta.idPregunta);
                    respuestaCud(int.Parse("3"), int.Parse("0"), idOpciones, variosModels.modelListaRespuesta[i]);
                    _listOP.Add(idOpciones);
                    continue;
                }
                objIngreso.opcionesImgEditar(1, variosModels.idOpcionImg[i], imgName, variosModels.modelListaRespuesta[i]);
                _listOP.Add(variosModels.idOpcionImg[i]);
            }
            return(_listOP);
        }
        public int[,] preguntaCud(VariosModel variosModels)
        {
            PreguntaEntidad objPregunta = variosModels.modelPregunta;

            DataTable id = objIngreso.preguntaCud(int.Parse("3"), int.Parse("0"), objPregunta.indicaciones, objPregunta.ponderacion, objPregunta.idActividad,
                                                  objPregunta.destreza, objPregunta.idTipo, objPregunta.idApoyo, objPregunta.duracion, objPregunta.mostarOpciones);
            DataRow    fila       = id.Rows[0];
            int        idPregunta = Convert.ToInt32(fila.ItemArray[0]);
            List <int> _listIdOp  = new List <int>();

            if ((objPregunta.idTipo >= 1 && objPregunta.idTipo <= 3) || objPregunta.idTipo == 7)
            {
                ing1to3And7(variosModels.modelListaOpciones, variosModels.modelListaRespuesta, idPregunta);
            }
            else if (objPregunta.idTipo == 4)
            {
                _listIdOp = ing4(variosModels.files, variosModels.modelListaRespuesta, idPregunta);
            }
            else if (objPregunta.idTipo == 5)
            {
                ing5(variosModels.modelListaOpciones, variosModels.modelListaRespuesta, idPregunta);
            }
            else if (objPregunta.idTipo == 6)
            {
                ing6(variosModels.modelListaOpciones, variosModels.modelListaRespuesta, idPregunta);
            }
            int[,] arrayPO = new int[1, 1];
            if (_listIdOp.Count > 0)
            {
                arrayPO = new int[2, _listIdOp.Count];
            }
            arrayPO[0, 0] = idPregunta;
            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < _listIdOp.Count; j++)
                {
                    if (i == 0)
                    {
                        arrayPO[i, j] = idPregunta;
                        continue;
                    }
                    arrayPO[i, j] = _listIdOp[j];
                }
            }
            return(arrayPO);
        }
        public PreguntaEntidad consultarPreguntaIdPregunta(int idPregunta)
        {
            PreguntaEntidad   objPregunta = new PreguntaEntidad();
            LogicTipoPregunta objTipP     = new LogicTipoPregunta();
            LogicApoyo        objApoyoEnt = new LogicApoyo();

            foreach (DataRow item in objConsultasDB.consultarPreguntaIdPregunta(idPregunta).Rows)
            {
                objPregunta.idPregunta     = Convert.ToInt32(item.ItemArray[0]);
                objPregunta.indicaciones   = item.ItemArray[1].ToString();
                objPregunta.ponderacion    = Convert.ToDecimal(item.ItemArray[2]);
                objPregunta.idActividad    = Convert.ToInt32(item.ItemArray[3]);
                objPregunta.destreza       = item.ItemArray[4].ToString();
                objPregunta.objTipo        = objTipP.consultarTipoPreguntaId(Convert.ToInt32(item.ItemArray[5]));
                objPregunta.duracion       = Convert.ToInt32(item.ItemArray[7]);
                objPregunta.mostarOpciones = bool.Parse(item.ItemArray[8].ToString());
            }
            return(objPregunta);
        }
Beispiel #5
0
        public List <string> IngresarQuiz(List <DatosDeVerificacionRespuestaEntidad> ListaRespuesta, bool completado, int idEstudiante, int idActModulo, int indicePregunta, int?nVecesResuelta, int duracion)
        {
            LogicActividad         objActEntidad     = new LogicActividad();
            LogicRespuesta         objRespuesta      = new LogicRespuesta();
            ActividadModuloEntidad objActi           = objActEntidad.consultarActividadModuloXidActMod(idActModulo);
            LogicPregunta          objPreguntaEnt    = new LogicPregunta();
            List <string>          listaVerificacion = new List <string>();
            var                tipoPregunta          = "";
            int                idPregunta            = 0;
            int                idQ            = 0;
            int                contador       = 0;
            string             respuesta      = "";
            string             temporal       = "";
            QuizEntidad        objQuiz        = consultarQuizPorActividadYestudiante(idActModulo, idEstudiante);
            DetalleQuizEntidad objDetalleQuiz = new DetalleQuizEntidad();

            if (objQuiz.idQuiz != 0)
            {
                if (consultarDetalleQuizPorOpcionYquiz(ListaRespuesta[0].idOpcionPregunta, objQuiz.idQuiz).idOpciones != 0 && objActi.tipo == "E")
                {
                    return(listaVerificacion);
                }
                else
                {
                    //Actualiza la cabecera del quiz
                    objIngresosDB.ingresarQuiz(objQuiz.idQuiz, idActModulo, idEstudiante, DateTime.Now, completado, indicePregunta, duracion, nVecesResuelta, 2);
                    idQ = objQuiz.idQuiz;
                }
            }
            else
            {
                //Ingresa la cabecera del quiz
                DataTable identificadorQuiz = objIngresosDB.ingresarQuiz(0, idActModulo, idEstudiante, DateTime.Now, completado, indicePregunta, duracion, nVecesResuelta, 3);
                idQ = Convert.ToInt32(identificadorQuiz.Rows[0].ItemArray[0]);
            }
            //Ingresa el detalle del quiz
            foreach (var item in ListaRespuesta)
            {
                tipoPregunta = item.tipoPregunta;
                idPregunta   = item.idPregunta;
                if (item.tipoPregunta == "Emparejamiento" && contador == 0)
                {
                    List <RespuestaEntidad> objResplista = objPreguntaEnt.consultarRespuestas(item.idPregunta);
                    foreach (var item1 in objResplista)
                    {
                        ListaRespuesta[contador].respuestaIngresada = item1.detalleRespuesta;
                        contador++;
                    }
                    contador = 0;
                }
                else
                {
                    //Elimina los espacios en blanco de la respuesta
                    temporal  = item.respuestaIngresada.Trim();
                    respuesta = Regex.Replace(temporal, @"\s+", " ");
                    ListaRespuesta[contador].respuestaIngresada = respuesta;
                }
                objDetalleQuiz = consultarDetalleQuizPorOpcionYquiz(item.idOpcionPregunta, idQ);
                if (objActi.tipo == "P")
                {
                    //Actualiza el detalle del quiz
                    if (objDetalleQuiz.idDetalleQuiz != 0 && tipoPregunta != "Pertenencia")
                    {
                        objIngresosDB.ingresarDetalleQuiz(objDetalleQuiz.idDetalleQuiz, item.idOpcionPregunta, item.respuestaIngresada, idQ, 2);
                    }
                    //Ingresa el detalle del quiz
                    else if (objDetalleQuiz.idDetalleQuiz != 0 && tipoPregunta == "Pertenencia" && contador == 0)
                    {
                        //Elimina todos los detalles que esten guardados con el idOpcionPregunta de la pregunta
                        objIngresosDB.ingresarDetalleQuiz(0, item.idOpcionPregunta, " ", 0, 1);
                        //Ingresa la nueva respuesta
                        objIngresosDB.ingresarDetalleQuiz(0, item.idOpcionPregunta, item.respuestaIngresada, idQ, 3);
                    }
                    else
                    {
                        objIngresosDB.ingresarDetalleQuiz(0, item.idOpcionPregunta, item.respuestaIngresada, idQ, 3);
                    }
                }
                else
                {
                    objIngresosDB.ingresarDetalleQuiz(0, item.idOpcionPregunta, item.respuestaIngresada, idQ, 3);
                }
                contador++;
            }

            listaVerificacion = objRespuesta.verificarRespuesta(ListaRespuesta, tipoPregunta);

            if (objActi.tipo == "E")
            {
                LogicCalificacion objCalificacionEntidad = new LogicCalificacion();
                int totalCorrectas = 0;
                foreach (var item in listaVerificacion)
                {
                    if (item.Contains("C"))
                    {
                        totalCorrectas++;
                    }
                }
                PreguntaEntidad objPregunta          = objPreguntaEnt.consultarPreguntaIdPregunta(idPregunta);
                decimal         calificacionPregunta = objCalificacionEntidad.calculoCalificacion(ListaRespuesta.Count(), totalCorrectas, objPregunta.ponderacion);
                objCalificacionEntidad.ingresoEfectividad(idQ, calificacionPregunta, objPregunta.destreza);
            }
            return(listaVerificacion);
        }