コード例 #1
0
        public ActionResult TodasLasPreguntas(string id)
        {
            if (!permissionManager.IsAuthorized(Permission.VER_PREGUNTAS))
            {
                TempData["alertmessage"] = "No tiene permisos para acceder a esta página.";
                return(RedirectToAction("../Home/Index"));
            }

            Pregunta pregDB = db.Pregunta.Find(id);

            if (pregDB == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PreguntaConNumeroSeccion pregTmp = new PreguntaConNumeroSeccion
            {
                Pregunta = pregDB,
            };
            List <PreguntaConNumeroSeccion> listaPregunta = new List <PreguntaConNumeroSeccion>();

            listaPregunta.Add(pregTmp);

            ObtenerInformacionDePreguntas(listaPregunta, null, null);

            return(View("../ResponderPreguntas/TodasLasPreguntas", listaPregunta));
        }
コード例 #2
0
        public void GuardarRespuestaAPregunta(PreguntaConNumeroSeccion pregunta, string CodigoSeccion, Respuestas_a_formulario respuestas)
        {
            if (pregunta != null && !string.IsNullOrEmpty(CodigoSeccion) && respuestas != null)
            {
                if (pregunta.Pregunta.Tipo == "L" && pregunta.RespuestaLibreOJustificacion != null)
                {
                    db.GuardarRespuestaAPreguntaLibre(respuestas.FCodigo, respuestas.Correo, respuestas.CSigla, respuestas.GNumero, respuestas.GAnno, respuestas.GSemestre,
                                                      respuestas.Fecha, pregunta.Pregunta.Codigo, CodigoSeccion, pregunta.RespuestaLibreOJustificacion);
                }
                else
                {
                    // Se crea la tupla que indica que el formulario fue llenado. Es el intento de llenado de un formulario, se ocupa antes de agregar las opciones seleccionadas
                    db.GuardarRespuestaAPreguntaConOpciones(respuestas.FCodigo, respuestas.Correo, respuestas.CSigla, respuestas.GNumero, respuestas.GAnno,
                                                            respuestas.GSemestre, respuestas.Fecha, pregunta.Pregunta.Codigo, CodigoSeccion, pregunta.RespuestaLibreOJustificacion);

                    // Se recorren cada una de las opciones que fueron seleccionadas para la pregunta. En el caso de selección múltiple, serán varias.
                    // En todos los demás casos solo se ejecuta una vez.
                    if (pregunta.Opciones != null && pregunta.Opciones.Any())
                    {
                        foreach (var opcion in pregunta.Opciones)
                        {
                            db.GuardarOpcionesSeleccionadas(respuestas.FCodigo, respuestas.Correo, respuestas.CSigla, respuestas.GNumero, respuestas.GAnno,
                                                            respuestas.GSemestre, respuestas.Fecha, pregunta.Pregunta.Codigo, CodigoSeccion, (byte)opcion);
                        }
                    }
                }
            }
        }
コード例 #3
0
        public void TestGuardarRespuestas()
        {
            TestSetup testSetup = new TestSetup();
            var       mockDb    = new Mock <DataIntegradorEntities>();

            string codFormulario = "TESTPSU";
            string codSeccion1   = "SECCPSU";
            string codSeccion2   = "DSIFSDAF";
            string codPregunta   = "PREGSU";
            string codPregunta2  = "Pregun2";

            // Se crea el formulario de prueba
            Formulario formulario = new Formulario()
            {
                Codigo = codFormulario,
                Nombre = "Formulario de prueba con preguntas de seleccion única"
            };

            mockDb.Setup(m => m.Formulario.Find(codFormulario)).Returns(formulario);

            Seccion seccion = new Seccion()
            {
                Codigo = codSeccion1,
                Nombre = "Sección de prueba"
            };

            Seccion seccion2 = new Seccion()
            {
                Codigo = codSeccion2,
                Nombre = "Sección de prueba 2"
            };

            Pregunta pregunta = new Pregunta()
            {
                Codigo    = codPregunta,
                Enunciado = "¿Qué piensa de Brexit?",
                Tipo      = "L"
            };

            Pregunta pregunta2 = new Pregunta()
            {
                Codigo    = codPregunta,
                Enunciado = "¿Qué piensa de Brexit?",
                Tipo      = "U"
            };

            Seccion_tiene_pregunta seccion_con_pregunta_1 = new Seccion_tiene_pregunta()
            {
                PCodigo = codPregunta,
                SCodigo = codSeccion1
            };

            Seccion_tiene_pregunta seccion_con_pregunta_2 = new Seccion_tiene_pregunta()
            {
                PCodigo = codPregunta2,
                SCodigo = codSeccion2
            };

            Pregunta_con_opciones pregunta_Con_Opciones = new Pregunta_con_opciones
            {
                Codigo = codPregunta,
                Pregunta_con_opciones_de_seleccion = new Pregunta_con_opciones_de_seleccion()
            };

            mockDb.Setup(x => x.Pregunta_con_opciones.Find(codPregunta)).Returns(pregunta_Con_Opciones);

            List <int> opcionesDePregunta = new List <int>();

            opcionesDePregunta.Append(0);

            Respuestas_a_formulario respuestas = new Respuestas_a_formulario()
            {
                FCodigo    = codFormulario,
                Correo     = "*****@*****.**",
                CSigla     = "CI0128",
                GNumero    = 2,
                GAnno      = 2019,
                GSemestre  = 2,
                Fecha      = DateTime.Today,
                Finalizado = false
            };

            PreguntaConNumeroSeccion preguntaConSeccion1 = new PreguntaConNumeroSeccion()
            {
                OrdenSeccion  = 0,
                OrdenPregunta = 0,
                Pregunta      = pregunta,
                RespuestaLibreOJustificacion = "Libre"
            };

            PreguntaConNumeroSeccion preguntaConSeccion2 = new PreguntaConNumeroSeccion()
            {
                OrdenSeccion  = 1,
                OrdenPregunta = 0,
                Pregunta      = pregunta2,
                RespuestaLibreOJustificacion = "Unica"
            };

            List <PreguntaConNumeroSeccion> preguntas = new List <PreguntaConNumeroSeccion>();

            preguntas.Append(preguntaConSeccion1);
            preguntas.Append(preguntaConSeccion2);

            SeccionConPreguntas seccionP = new SeccionConPreguntas()
            {
                CodigoSeccion = codSeccion1,
                Nombre        = "nsdlkfj;a",
                Preguntas     = preguntas,
                Orden         = 0,
                Edicion       = true
            };

            SeccionConPreguntas seccionP2 = new SeccionConPreguntas()
            {
                CodigoSeccion = codSeccion2,
                Nombre        = "seccion2nsdlkfj;a",
                Preguntas     = preguntas,
                Orden         = 0,
                Edicion       = true
            };

            List <SeccionConPreguntas> secciones = new List <SeccionConPreguntas>()
            {
                seccionP, seccionP2
            };

            LlenarFormularioController controller = new LlenarFormularioController(mockDb.Object);

            testSetup.SetupHttpContext(controller);
            // Si no se cae en esta linea, significa que el guardar funciona correctamente
            controller.GuardarRespuestas(respuestas, secciones);
        }
コード例 #4
0
        public void TestGuardarRespuestasAPreguntaLibre()
        {
            TestSetup testSetup = new TestSetup();
            var       mockDb    = new Mock <DataIntegradorEntities>();

            string codFormulario = "TESTPSU";
            string codSeccion    = "SECCPSU";
            string codPregunta   = "PREGSU";

            // Se crea el formulario de prueba
            Formulario formulario = new Formulario()
            {
                Codigo = codFormulario,
                Nombre = "Formulario de prueba con preguntas de seleccion única"
            };

            mockDb.Setup(m => m.Formulario.Find(codFormulario)).Returns(formulario);

            ObtenerSeccionesDeFormulario_Result seccion = new ObtenerSeccionesDeFormulario_Result
            {
                Codigo = codSeccion,
                Nombre = "Sección de prueba",
                Orden  = 0
            };

            var mockedObtenerSecciones = testSetup.SetupMockProcedure <ObtenerSeccionesDeFormulario_Result>
                                             (new List <ObtenerSeccionesDeFormulario_Result> {
                seccion
            });

            mockDb.Setup(x => x.ObtenerSeccionesDeFormulario(codFormulario)).Returns(mockedObtenerSecciones.Object);

            Pregunta pregunta = new Pregunta()
            {
                Codigo    = codPregunta,
                Enunciado = "¿Qué piensa de Brexit?",
                Tipo      = "L"
            };

            Respuestas_a_formulario respuestas = new Respuestas_a_formulario()
            {
                FCodigo    = codFormulario,
                Correo     = "*****@*****.**",
                CSigla     = "CI0128",
                GNumero    = 2,
                GAnno      = 2019,
                GSemestre  = 2,
                Fecha      = DateTime.Today,
                Finalizado = false
            };

            PreguntaConNumeroSeccion preguntaConSeccion = new PreguntaConNumeroSeccion()
            {
                OrdenSeccion  = 0,
                OrdenPregunta = 0,
                Pregunta      = pregunta,
                RespuestaLibreOJustificacion = "Para que cubra más del coverage"
            };

            LlenarFormularioController controller = new LlenarFormularioController(mockDb.Object);

            testSetup.SetupHttpContext(controller);

            // Si no se cae en esta linea, significa que el guardar funciona correctamente
            controller.GuardarRespuestaAPregunta(preguntaConSeccion, codSeccion, respuestas);
        }