Пример #1
0
        public async ValueTask <string> Get(MTest test)
        {
            return(await TestBll.Get());

            //throw new Exception("test exception");
            // return "OK";
        }
Пример #2
0
        public ActionResult Tests(String mensaje = null)
        {
            if (!sesion.getIdUsuario().Equals("") &&
                (sesion.getIPerfilUsusrio().Equals("Estudiante") ||
                 sesion.getIPerfilUsusrio().Equals("Docente")))
            {
                Mclase        mclase  = new Mclase();
                List <MCurso> mcursos = null;
                String        periodo = MConfiguracionApp.getPeridoActual(db);
                // se consulta los grupos donde el estudiante a dado clase
                if (sesion.getIPerfilUsusrio().Equals("Estudiante"))
                {
                    mcursos = mclase.getCursos_por_clase(periodo, sesion.getIdUsuario());
                }
                else
                {
                    List <string> materiasDocente = new List <string>();


                    string       id_docente = sesion.getIdUsuario();
                    List <Grupo> grupos     = ConsumidorAppi.getGrupos(periodo);

                    if (grupos != null)
                    {
                        MMateria tem = new MMateria();
                        grupos = (from g in grupos where (g.doc_docente.Equals(id_docente)) select g).ToList();
                        foreach (var grupo in grupos)
                        {
                            if (tem.esMonitoreadaMateria(periodo, grupo.nom_materia))
                            {
                                materiasDocente.Add(grupo.nom_materia);
                            }
                        }
                        materiasDocente = materiasDocente.Distinct().ToList();
                    }
                    mcursos = new List <MCurso> ();
                    foreach (String item in materiasDocente)
                    {
                        mcursos = mcursos.Union(new MCurso().getCursoMateria(item, periodo)).ToList();
                    }
                }
                // DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss-ff")
                DateTime     fechaHoya = DateTime.Now;
                List <MTest> mtests    = new MTest().getTestPeriodo("", 0, 0);// se consultan los test abiertos
                // se consultan solo los test de los monitores
                mtests = (from c in mtests
                          where (DateTime.Compare(DateTime.Now, c.fecha_inicio) >= 0 && c.periodo == periodo && c.eliminado == 0 && c.ferfil_usuario == sesion.getIPerfilUsusrio())
                          select c).ToList();
                // 1 se consultas la materias docentes
                // 2 se consultas los grupos q tienen de cada materia
                // 3 se
                ViewBag.mtests  = mtests;
                ViewBag.mcursos = mcursos;
                ViewBag.mensaje = mensaje;
                ViewBag.perfil  = sesion.getIPerfilUsusrio();
                return(View());
            }
            return(Redirect("~/Inicio/Login"));
        }
Пример #3
0
        public ActionResult Crear(MTest Mtest, int[] id_preguntas = null)
        {
            Respuesta respuesta = new Respuesta();

            if (id_preguntas == null)
            {
                respuesta.RESPUESTA = "ERROR";
                respuesta.MENSAJE   = "Debe seleccionar al menos 1 pregunta.";
            }
            else if (sesion.esAdministrador(db))
            {
                if (ModelState.IsValid)
                {
                    Test test_ = new Test();
                    test_.eliminado         = 0;
                    test_.estado_cierre     = 0;
                    test_.id_usuario_creado = sesion.getIdUsuario();
                    test_.fecha_fin         = Mtest.fecha_fin;
                    test_.fecha_inicio      = Mtest.fecha_inicio;
                    test_.periodo           = MConfiguracionApp.getPeridoActual(db);
                    test_.ferfil_usuario    = Mtest.ferfil_usuario;


                    bool respuesta_guardado = Mtest.guardar_Test(test_, id_preguntas);
                    if (respuesta_guardado)
                    {
                        respuesta.RESPUESTA = "OK";
                        respuesta.MENSAJE   = "Test guardada correctamente.";
                    }
                    else
                    {
                        respuesta.RESPUESTA = "ERROR";
                        respuesta.MENSAJE   = "Error al registrar al Test.";
                    }
                }
                else
                {
                    respuesta.RESPUESTA = "ERROR";
                    respuesta.MENSAJE   = "Los datos ingresados son incorrecotos.";
                }
            }
            else
            {
                respuesta.RESPUESTA = "LOGIN";
            }
            return(Json(respuesta));
        }
Пример #4
0
        public ActionResult Evaluacion_test(int id, int grupo = -1)
        {
            try
            {
                if (sesion.esAdministradorOrMonitor(db))
                {
                    cursos c = db.cursos.Find(grupo);
                    if (sesion.esEstudiante())
                    {
                        c = (from c2 in db.cursos where (c2.id == grupo) select c2).First();
                    }
                    String titleBar = " - GENERAL";
                    if (grupo > 0)
                    {
                        titleBar = " - " + c.usuarios.nombre + " " + c.usuarios.apellidos + " - " + c.nombre_materia;
                    }
                    MTest mtAux = new MTest();
                    // es una lista[idPregunta, puntos]
                    List <String[]>        puntosAll          = mtAux.getPreguntaPuntosTotal(id, grupo);
                    List <String[]>        comentarioPregunta = mtAux.getCometariosPreguntasAbiertaTest(id, grupo);
                    List <MPreguntas_test> preguntasAll       = mtAux.getPreguntas_test(id).OrderBy(x => x.id).ToList();
                    int           cantidad = mtAux.ContarCantidaUasuarioRespondenTest(id, grupo);
                    Test          test     = db.Test.Find(id);
                    List <MCurso> mcursos  = new  MCurso().getCursos("", test.periodo);
                    ViewBag.preguntasTest       = preguntasAll;
                    ViewBag.puntoPreguntas      = puntosAll;
                    ViewBag.comentarioPreguntas = comentarioPregunta;
                    ViewBag.id       = id;
                    ViewBag.perfil   = sesion.getIPerfilUsusrio();
                    ViewBag.cantidad = cantidad;
                    ViewBag.curos    = mcursos;
                    ViewBag.id_curso = grupo;

                    ViewBag.titleBar = titleBar;
                    return(View());
                }
                else
                {
                    return(Redirect("~/Inicio/Login"));
                }
            }
            catch (Exception)
            {
                return(Redirect("~/Inicio/Login"));
            }
        }
Пример #5
0
        //
        // GET: /Test/

        public ActionResult Detalles(int id)
        {
            if (sesion.esAdministrador(db))
            {
                MTest mtAuxiliar = new MTest();
                MTest mtest      = (mtAuxiliar.getTestPorId(id));
                if (mtest == null)
                {
                    return(Historial_test());
                }

                List <MPreguntas_test> preguntas_test = mtAuxiliar.getPreguntas_test(id);
                ViewBag.preguntas = preguntas_test;
                return(View(mtest));
            }
            return(Redirect("~/Inicio/Login"));
        }
Пример #6
0
 public ActionResult Edit_test(int id)
 {
     if (sesion.esAdministrador(db))
     {
         MTest mtstAux = new MTest();
         List <MPreguntas_test> preguntas = (new MPreguntas_test()).getPreguntas(0);
         ViewBag.preguntas = preguntas;
         MTest mtst = (mtstAux.getTestPorId(id));
         List <MPreguntas_test> preguntaTest = mtstAux.getPreguntas_test(id);
         ViewBag.preguntas    = preguntas;
         ViewBag.preguntaTest = preguntaTest;
         return(View(mtst));
     }
     else
     {
         return(Redirect("~/Inicio/Login"));
     }
 }
Пример #7
0
        public JsonResult Edit_test(MTest Mtest, int[] id_preguntas = null)
        {
            Respuesta respuesta = new Respuesta();

            if (id_preguntas == null)
            {
                respuesta.RESPUESTA = "ERROR";
                respuesta.MENSAJE   = "Debe seleccionar al menos 1 pregunta.";
            }
            else if (sesion.esAdministrador(db))
            {
                if (ModelState.IsValid)
                {
                    int respuesta_guardado = Mtest.actualizar_test(db, Mtest);
                    if (respuesta_guardado > 0)
                    {
                        respuesta.RESPUESTA = "OK";
                        respuesta.MENSAJE   = "Test actualizado correctamente.";
                        bool pregunta_save = Mtest.guardar_Test(null, id_preguntas, Mtest.id);
                        if (!pregunta_save)
                        {
                            respuesta.RESPUESTA = "NO_PREGUNTA";
                            respuesta.MENSAJE   = "Los datos principales del test se actualizaron.<br>" +
                                                  "Las preguntas no fueron editadas porque los ususrios comezarón a responder el test.";
                        }
                    }
                    else
                    {
                        respuesta.RESPUESTA = "ERROR";
                        respuesta.MENSAJE   = "Error al actualizar al Test.";
                    }
                }
                else
                {
                    respuesta.RESPUESTA = "ERROR";
                    respuesta.MENSAJE   = "Los datos ingresados son incorrecotos.";
                }
            }
            else
            {
                respuesta.RESPUESTA = "LOGIN";
            }
            return(Json(respuesta));
        }
Пример #8
0
        public JsonResult Delete(int id)
        {
            Respuesta respuesta = new Respuesta();

            if (sesion.esAdministrador(db))
            {
                int respusta = new MTest().eliminarPregunta(db, id);
                if (respusta > 0)
                {
                    respuesta.RESPUESTA = "OK";
                    respuesta.MENSAJE   = "Pregunta eliminada exite.";
                }
                else
                {
                    respuesta.RESPUESTA = "ERROR";
                    respuesta.MENSAJE   = "Pregunta no eliminada.";
                }
            }
            else
            {
                respuesta.RESPUESTA = "LOGIN";
            }
            return(Json(respuesta));
        }
Пример #9
0
        public ActionResult Responder_test(String test = "", String curso = "")
        {
            String mensaje = null;

            if (sesion.esEstudiante())
            {
                try
                {
                    int    id_test       = Convert.ToInt32(test);
                    int    id_curso      = Convert.ToInt32(curso);
                    String peridio       = MConfiguracionApp.getPeridoActual(db);
                    MTest  mtestAux      = new MTest();
                    MTest  testResponder = mtestAux.getTestPorId(id_test);

                    // se verifica q el perfil se el correcto y que el teste no este cerrado
                    if (testResponder.ferfil_usuario.Equals(sesion.getIPerfilUsusrio()) &&
                        testResponder.estado_cierre == 0 && testResponder.eliminado == 0 &&
                        testResponder.periodo.Equals(peridio))
                    {
                        // se verifica q haya asistido al menos a una calse del curso
                        if (new Mclase().getClaseAsistedaEstudianteEnGrupo(id_curso, sesion.getIdUsuario()) > 0)
                        {
                            // se verfica si ya el estudiante ha respondeido el test
                            bool respondio = mtestAux.isRespondioTest(id_curso, id_test);
                            if (!respondio)
                            {
                                //DateTime.Compare(DateTime.Now, c.fecha_inicio)>=0 &&
                                MTest mtest = (mtestAux.getTestPorId(id_test));
                                if (DateTime.Compare(DateTime.Now, mtest.fecha_inicio) >= 0)
                                {
                                    sesion.setId_test_responder(id_test);
                                    sesion.setIdCurso_test(id_curso);
                                    List <MPreguntas_test> preguntas = null;
                                    if (mtest != null)
                                    {
                                        preguntas = mtest.getPreguntas_test_a_responder(db, mtest.id);
                                    }
                                    ViewBag.test      = mtest;
                                    ViewBag.preguntas = preguntas;
                                    return(View("Responder_test"));
                                }
                                else
                                {
                                    mensaje = "Test no esta disponible.";
                                }
                            }
                            else
                            {
                                mensaje = "Usted ya respondió el test seleccionado.";
                            }
                        }
                        else
                        {
                            mensaje = "usted no está apto para responder el test.";
                        }
                    }
                    else
                    {
                        mensaje = "Usted no está seleccionado para responder este test o el test está finalizado";
                    }
                }
                catch (Exception)
                {
                    mensaje = "Datos de entrada incorrectos";
                }

                return(Redirect("~/Test/Tests/?mensaje=" + mensaje));
            }
            else
            {
                return(Redirect("~/Inicio/Login"));
            }
        }
Пример #10
0
        public JsonResult Guardar_respuesta()
        {
            Respuesta              respuesta  = new Respuesta();
            bool                   error      = false;
            List <respuestas>      respuestas = new List <respuestas>();
            List <MPreguntas_test> preguntas  = null;
            MTest                  test       = new MTest();

            //  se consultas las pregunta asignadas al test
            preguntas = (test).getPreguntas_test_a_responder(db, Convert.ToInt32(sesion.getId_test_responder()));
            // se resta uno por el toke de validacion
            if (preguntas.Count() == Request.Form.Count - 1)
            {
                foreach (MPreguntas_test mpreguta in preguntas)
                {
                    // se consulta id de la relacion de las preguntas con el test
                    pregunta_test_responder pre_responder = test.getPregunta_test_responder(db,
                                                                                            Convert.ToInt32(sesion.getId_test_responder()), mpreguta.id);
                    String observacion = null;
                    int    punto       = 0;
                    if (mpreguta.tipo.Equals("Abierta"))
                    {
                        //los nombre de los inputs es el  id de la pregunta
                        observacion = Request.Form["" + mpreguta.id];
                        if (observacion.Count() <= 3)
                        {
                            respuesta.RESPUESTA = "ERROR";
                            respuesta.MENSAJE   = "Las preguntas abiertas deben tener minimo tres caracteres en la respuesta.";
                            error = true;
                        }
                    }

                    else if (mpreguta.tipo.Equals("Cerrada"))
                    {
                        punto = Convert.ToInt32(Request.Form["" + mpreguta.id]);
                        if (punto < 1 || punto > 10)
                        {
                            error = true;
                            respuesta.RESPUESTA = "ERROR";
                            respuesta.MENSAJE   = "Error en la respuesta de '" + mpreguta.Pregunata + "'.";
                        }
                    }

                    respuestas.Add(new respuestas
                    {
                        id_persona  = sesion.getIdUsuario(),
                        observacion = observacion,
                        punto       = punto,
                        id_preguntas_test_respustas = pre_responder.id,
                        id_curso = sesion.getIdCurso_test()
                    });
                }
                if (!error)
                {
                    bool respusta_ = test.guardar_respuestas_test(db, respuestas);
                    if (!respusta_)
                    {
                        respuesta.RESPUESTA = "ERROR";
                        respuesta.MENSAJE   = "Error al guardar.";
                    }
                    else
                    {
                        respuesta.RESPUESTA = "OK";
                        respuesta.MENSAJE   = "Su respuesta fue guardada con exito. Gracias por participar.";
                    }
                }
            }
            else
            {
                respuesta.RESPUESTA = "ERROR";
                respuesta.MENSAJE   = "Responda todas las preguntas antes de guardar.";
            }

            return(Json(respuesta));
        }