Ejemplo n.º 1
0
        public PreguntaDTO GetPregunta(int nivel, out string msj)
        {
            msj = "";
            Random rnd = new Random();

            if (listaPreguntas.Count() < 1)
            {
                msj = "Se han acabado las preguntas de este nivel";
                return(null);
            }
            int         aleatorio = rnd.Next(0, listaPreguntas.Count());
            PreguntaDTO pregunta  = listaPreguntas[aleatorio];

            listaPreguntas.RemoveAt(aleatorio);
            return(pregunta);

            //Random rnd = new Random();
            //List<PreguntaDTO> listaABorrar = gestDatos.PreguntasDeNivel(nivel, out string msg);
            //msj = msg;
            //if (msj != "")
            //{
            //    return null;
            //}
            //int aleatorio = rnd.Next(1, listaABorrar.Count);
            //PreguntaDTO pregunta = listaABorrar[aleatorio];
            //listaABorrar.RemoveAt(aleatorio);
            //return pregunta;
        }
Ejemplo n.º 2
0
        private void SiguientePregunta()
        {
            preguntaActual = fachada.ObtenerPreguntaYRespuestas(FinTiempoLimite, ActualizarTimer, idSesionActual);

            lblPregunta.Text = preguntaActual.Pregunta;

            btnRespuesta1.Text      = preguntaActual.Respuestas[0].Respuesta;
            btnRespuesta1.Enabled   = true;
            btnRespuesta1.BackColor = System.Drawing.SystemColors.Control;

            btnRespuesta2.Text      = preguntaActual.Respuestas[1].Respuesta;
            btnRespuesta2.Enabled   = true;
            btnRespuesta2.BackColor = System.Drawing.SystemColors.Control;

            btnRespuesta3.Text      = preguntaActual.Respuestas[2].Respuesta;
            btnRespuesta3.Enabled   = true;
            btnRespuesta3.BackColor = System.Drawing.SystemColors.Control;

            btnRespuesta4.Text      = preguntaActual.Respuestas[3].Respuesta;
            btnRespuesta4.Enabled   = true;
            btnRespuesta4.BackColor = System.Drawing.SystemColors.Control;

            lblRespuestasActuales.Text = (int.Parse(lblRespuestasActuales.Text) + 1).ToString();
            btnSiguiente.Enabled       = false;
        }
Ejemplo n.º 3
0
        public void mostrarPregunta(PreguntaDTO unaPregunta) //Muestra una pregunta con sus opciones
        {
            preg.Text += unaPregunta.Id;                     //Muestro la Pregunta en el Label

            var respuestas = ControladorPreguntas.RespuestasDePregunta(iPreguntas[iNumeroPregunta]);
            List <RespuestaDTO> opciones = new List <RespuestaDTO>(); //Almacena las 4 opciones de respuestas

            foreach (RespuestaDTO respuesta in respuestas)
            {
                opciones.Add(respuesta);
            }

            List <RespuestaDTO> listaDesordenada = new List <RespuestaDTO>();
            Random rnd = new Random();

            while (opciones.Count > 0) //Desordena la Lista
            {
                int i = rnd.Next(opciones.Count);
                listaDesordenada.Add(opciones[i]);
                opciones.RemoveAt(i);
            }


            foreach (RespuestaDTO opcion in listaDesordenada) //Muestra las preguntas en RadioButtons
            {
                RadioButton rb = new RadioButton();
                rb.Text = opcion.Texto;
                rb.Name = opcion.Id.ToString();
                flowLayoutPanel1.Controls.Add(rb);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Inicia el temporizador y devuelve un PreguntaDTO correspondiente a la siguiente de la sesión
        /// </summary>
        /// <param name="pOnTimeFinishedHandler">La acción a realizar cuando se agota el tiempo límite</param>
        /// <param name="pOnTickTimer">La acción a realizar por cada tick</param>
        /// <param name="pIdSesionActual">El ID de la sesión actual</param>
        /// <returns></returns>
        public PreguntaDTO ObtenerPreguntaYRespuestas(Action pOnTimeFinishedHandler, Action <int> pOnTickTimer, int pIdSesionActual)
        {
            Random      random = new Random();
            PreguntaDTO preguntaYRespuestas = new PreguntaDTO();
            Sesion      sesionActual        = ServiciosSesion.ObtenerSesion(pIdSesionActual);
            Pregunta    pregunta            = ServiciosPregunta.ObtenerPregunta(sesionActual.ObtenerIdSiguientePregunta());

            int tiempoRestante = Convert.ToInt32(sesionActual.TiempoLimite() - sesionActual.SegundosTranscurridos);

            ayudanteTimer = new AyudanteTimer(tiempoRestante, pOnTimeFinishedHandler, pOnTickTimer);

            preguntaYRespuestas.IdPregunta = pregunta.PreguntaId;
            preguntaYRespuestas.Pregunta   = pregunta.Nombre;

            RespuestaDTO        respuestaActualDTO;
            List <RespuestaDTO> listaDeRespuestas = new List <RespuestaDTO>();

            foreach (Respuesta respuesta in pregunta.Respuestas)
            {
                respuestaActualDTO             = new RespuestaDTO();
                respuestaActualDTO.IdRespuesta = respuesta.RespuestaId;
                respuestaActualDTO.Respuesta   = respuesta.DefRespuesta;
                listaDeRespuestas.Add(respuestaActualDTO);
            }

            preguntaYRespuestas.Respuestas = listaDeRespuestas.OrderBy(x => random.Next()).ToList();

            return(preguntaYRespuestas);
        }
        public PreguntaRespuestaDTO Add(PreguntaDTO preguntaDTO)
        {
            var pregunta = this._mapper.Map <Pregunta>(preguntaDTO);

            this.Repository.Add(pregunta);

            return(this._mapper.Map <PreguntaRespuestaDTO>(pregunta));
        }
Ejemplo n.º 6
0
        public List <SeccionDTO> GenerarEncuestaPrueba()
        {
            List <SeccionDTO> listaSeccion = new List <SeccionDTO>();

            for (int i = 0; i < 4; i++)
            {
                SeccionDTO nuevoS = new SeccionDTO();
                nuevoS.Nombre     = "Seccion" + i.ToString();
                nuevoS.IdEncuesta = 1;
                nuevoS.Orden      = i;

                List <PreguntaDTO> listaPregunta = new List <PreguntaDTO>();
                for (int j = 0; j < 4; j++)
                {
                    PreguntaDTO nuevaP = new PreguntaDTO();
                    nuevaP.IdPregunta = (10 + i) * 10 + j;
                    switch (j)
                    {
                    case 0:
                        nuevaP.Descripcion = "¿Como calificaria el servicio ofrecido durante los 3 ultimos meses?";
                        break;

                    case 1:
                        nuevaP.Descripcion = "¿Como calificarias el desempeño de los trabajadores?";
                        break;

                    case 2:
                        nuevaP.Descripcion = "¿Como calificarias la calidad de respuesta de tu asesor?";
                        break;

                    case 3:
                        nuevaP.Descripcion = "¿Como calificarias el nivel de atención de los profesionales asociados?";
                        break;
                    }
                    nuevaP.IdSeccion     = i;
                    nuevaP.OrdenPregunta = j;
                    listaPregunta.Add(nuevaP);
                }
                List <SeccionDTO> listaSecciones = new List <SeccionDTO>();
                for (int k = 0; k < 4; k++)
                {
                    SeccionDTO auxSec = new SeccionDTO();

                    auxSec.IdSeccionPadre = i;
                    auxSec.IdSeccion      = k;
                    auxSec.Nombre         = "SeccionAux" + k.ToString();
                    auxSec.Orden          = k;

                    listaSecciones.Add(auxSec);
                }

                nuevoS.Preguntas    = listaPregunta;
                nuevoS.SubSecciones = listaSecciones;
                listaSeccion.Add(nuevoS);
            }
            return(listaSeccion);
        }
        // POST: api/Pregunta
        public Object Post(PreguntaDTO pregunta)
        {
            string BASE_URL  = System.Configuration.ConfigurationManager.AppSettings["BASE_URL"].ToString();
            string BASE_PATH = System.Configuration.ConfigurationManager.AppSettings["BASE_IMAGES_PATH"].ToString();

            pregunta.Imagen = BASE_URL + BASE_PATH + "/default.png";

            BusinessLogic.Controllers.PreguntaController preguntaController = new BusinessLogic.Controllers.PreguntaController();
            var preguntaCreada = preguntaController.Create(pregunta);

            return(new ResponseDTO(preguntaCreada, "Se ha creado la pregunta correctamente.", true));
        }
Ejemplo n.º 8
0
 public ActionResult AddPregunta(PreguntaDTO dto)
 {
     if (!this.currentUser())
     {
         return(RedirectToAction("Ingresar"));
     }
     try
     {
         PreguntaBL objBL = new PreguntaBL();
         if (dto.IdPregunta == 0)
         {
             if (objBL.add(dto))
             {
                 createResponseMessage(CONSTANTES.SUCCESS);
                 return(RedirectToAction("Encuesta", new { id = dto.IdEncuesta }));
             }
             else
             {
                 createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
             }
         }
         else if (dto.IdPregunta != 0)
         {
             if (objBL.update(dto))
             {
                 createResponseMessage(CONSTANTES.SUCCESS);
                 return(RedirectToAction("Encuesta", new { id = dto.IdEncuesta }));
             }
             else
             {
                 createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
             }
         }
         else
         {
             createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
         }
     }
     catch
     {
         if (dto.IdPregunta != 0)
         {
             createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
         }
         else
         {
             createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
         }
     }
     TempData["Pregunta"] = dto;
     return(RedirectToAction("Encuesta"));
 }
Ejemplo n.º 9
0
        private void Jugar(int nivel)
        {
            preguntaDto = Program.gest.PreguntasNivel(nivel, out String msj);
            if (msj != null)
            {
                if (msj.Equals("Error"))
                {
                    return;
                }
                if (msj.Contains("nivel máximo"))
                {
                    VaciarControles();
                }
                MessageBox.Show(msj, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                if (msj.Contains("No disponemos"))
                {
                    AciertosFallos("noDisponemos", 1);
                }
                return;
            }

            int num = 12;

            VaciarControles();

            lblTiempo.Text = tiempo.ToString();
            tmrTiempoTotal.Start();

            lblNivel.Text     = preguntaDto.Nivel.ToString();
            lblEnunciado.Text = preguntaDto.Enunciado;
            num = 12;
            Controls.OfType <Button>().ToList().ForEach(button => {
                if (button.Name == "btn" + num)
                {
                    button.Text = preguntaDto.Respuestas[num - 1].PosibleRespuesta;
                    num        -= 1;
                }
            });

            // foreach (Control control in frm.Controls) { }
            // for (int i = 0; i < Controls.OfType<Button>().Count(); i++) { }

            /*foreach (var button in Controls.OfType<Button>())  {
             * if (button.Name == "btn"+num) {
             *      button.Text = preguntaDto.Respuestas[num-1].PosibleResuesta;
             *      num -= 1;
             * }
             * }*/
        }
Ejemplo n.º 10
0
        public PreguntaDTO ObtenerPreguntaAleatoria()
        {
            int max = preguntas.Count;

            if (max == 0)
            {
                return(null);
            }
            int         indicePregunta = rnd.Next(0, max);
            PreguntaDTO pregunta       = preguntas[indicePregunta];

            preguntas.RemoveAt(indicePregunta);
            return(pregunta);
        }
Ejemplo n.º 11
0
 public bool add(PreguntaDTO preguntaDTO)
 {
     using (var context = getContext())
     {
         try
         {
             Pregunta pregunta = new Pregunta();
             context.Pregunta.Add(pregunta);
             context.SaveChanges();
             return(true);
         }
         catch (Exception e)
         {
             throw e;
             //return false;
         }
     }
 }
Ejemplo n.º 12
0
        public static IEnumerable <PreguntaDTO> GetPreguntasDeExamen(int examenId)
        {
            List <PreguntaDTO> preguntas = new List <PreguntaDTO>();

            using (var db = new TrabajoDbContext())
            {
                using (var UoW = new UnitOfWork(db))
                {
                    foreach (var examenPregunta in UoW.ExamenRepository.Get(examenId).ExamenPreguntas)
                    {
                        Pregunta    pregunta    = UoW.RepositorioPreguntas.Get(examenPregunta.PreguntaId);
                        PreguntaDTO preguntaDTO = new PreguntaDTO(pregunta);
                        preguntas.Add(preguntaDTO);
                    }
                }
            }
            return(preguntas);
        }
Ejemplo n.º 13
0
 public Object Create(PreguntaDTO pregunta)
 {
     try
     {
         using (ModelosDBContainer context = new ModelosDBContainer())
         {
             PreguntaRepository repositorio = new PreguntaRepository(context);
             var preg = this._mapper.Map <Pregunta>(pregunta);
             repositorio.Create(preg);
             context.SaveChanges();
             return(preg);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 14
0
 public void NextPregunta()
 {
     this.nivelActual = Program.nivelSeleccionado;
     txt_Nivel.Text   = nivelActual.ToString();
     timer1.Enabled   = true;
     contador         = 61;
     HabilitarBotones();
     ColorBotones();
     numValidas   = 0;
     numNoValidas = 0;
     pregunta     = gestNegocio.GetPregunta(nivelActual, out String msj);
     if (msj != "")
     {
         DialogResult dialogResult = MessageBox.Show(msj + ", Quieres ir al siguiente nivel", "Atención", MessageBoxButtons.YesNo);
         if (dialogResult == DialogResult.Yes)
         {
             //siguiente nivel
             Program.nivelSeleccionado++;
             NextNivel(Program.nivelSeleccionado);
         }
         else if (dialogResult == DialogResult.No)
         {
             //Finalizar programa
             FinalizarPrograma();
         }
         return;
     }
     //Enunciado
     txt_Enunciado.Text = pregunta.Enunciado;
     //Respuestas
     btn_1.Text  = (pregunta.RespuestasDTO[0].PosibleRespuesta);
     btn_2.Text  = (pregunta.RespuestasDTO[1].PosibleRespuesta);
     btn_3.Text  = (pregunta.RespuestasDTO[2].PosibleRespuesta);
     btn_4.Text  = (pregunta.RespuestasDTO[3].PosibleRespuesta);
     btn_5.Text  = (pregunta.RespuestasDTO[4].PosibleRespuesta);
     btn_6.Text  = (pregunta.RespuestasDTO[5].PosibleRespuesta);
     btn_7.Text  = (pregunta.RespuestasDTO[6].PosibleRespuesta);
     btn_8.Text  = (pregunta.RespuestasDTO[7].PosibleRespuesta);
     btn_9.Text  = (pregunta.RespuestasDTO[8].PosibleRespuesta);
     btn_10.Text = (pregunta.RespuestasDTO[9].PosibleRespuesta);
     btn_11.Text = (pregunta.RespuestasDTO[10].PosibleRespuesta);
     btn_12.Text = (pregunta.RespuestasDTO[11].PosibleRespuesta);
 }
Ejemplo n.º 15
0
        /// <summary>
        /// Guarda el resultado de un examen para una pregunta y su respuesta
        /// Almacena el resultado de la respuesta
        /// </summary>
        /// <exception cref="ArgumentException"></exception>
        /// <param name="pExamen"></param>
        /// <param name="pPregunta"></param>
        /// <param name="pRespuesta"></param>
        /// <returns>Examen actualizado</returns>
        public static ExamenDTO GuardarRespuesta(ExamenDTO pExamen, PreguntaDTO pPregunta, int idRespuesta)
        {
            Examen examen;

            using (var db = new TrabajoDbContext())
            {
                using (var UoW = new UnitOfWork(db))
                {
                    examen = UoW.ExamenRepository.Get(pExamen.Id);
                    var respuesta = UoW.RepositorioPreguntas.Get(pPregunta.Id).Respuestas.Where(r => r.Id == idRespuesta);
                    if (!respuesta.Any())
                    {
                        throw new ArgumentException(String.Format("Respuesta {0} no existe", idRespuesta));
                    }
                    examen.ExamenPreguntas.First(e => e.PreguntaId == pPregunta.Id).RespuestaElegidaId = idRespuesta;
                    UoW.Complete();
                }
            }
            return(new ExamenDTO(examen));
        }
        public static IEnumerable <RespuestaDTO> RespuestasDePregunta(PreguntaDTO pPregunta)
        {
            Pregunta pre;

            using (var db = new TrabajoDbContext())
            {
                using (var UoW = new UnitOfWork(db))
                {
                    pre = UoW.RepositorioPreguntas.Get(pPregunta.Id);
                }
            }

            var respuestas = new List <RespuestaDTO>();

            foreach (var r in pre.Respuestas)
            {
                respuestas.Add(new RespuestaDTO(r));
            }

            return(respuestas);
        }
Ejemplo n.º 17
0
        private void SacarPreguntaAlazar()
        {
            lblRespuestaValida.Text = null;
            ResetearBotonesRespuesta();
            acertadas = 0;
            falladas  = 0;
            PreguntaDTO pregunta = gestionNg.ObtenerPreguntaAleatoria();

            if (pregunta == null)
            {
                nivel++;
                gestionNg.PreguntasDeNivel(nivel, out string pregsDeNivelError);
                if (!String.IsNullOrWhiteSpace(pregsDeNivelError))
                {
                    MessageBox.Show("No quedan más niveles", "FIN DEL JUEGO");
                    this.Close();
                    return;
                }
                SacarPreguntaAlazar();
                lblNivel.Text = nivel.ToString();
                return;
            }
            lblEnunciado.Text = pregunta.Enunciado;
            int indexRespuesta = 0;

            foreach (Button btn in this.Controls.OfType <Button>())
            {
                if (btn.Tag != null && btn.Name.ToString().ToLower().Contains("btnrespuesta"))
                {
                    btn.Text = pregunta.Respuestas[indexRespuesta].PosibleRespuesta;
                    btn.Tag  = pregunta.Respuestas[indexRespuesta++].Explicacion;
                }
            }

            segundos                = 15;
            lblTiempo.Text          = segundos.ToString();
            tmrTiempoTotal.Interval = 1000;
            tmrTiempoTotal.Start();
        }
Ejemplo n.º 18
0
 public bool update(PreguntaDTO preguntaDTO)
 {
     using (var context = getContext())
     {
         try
         {
             var pregunta = context.Pregunta.Where(x => x.IdPregunta == preguntaDTO.IdPregunta).SingleOrDefault();
             pregunta.Texto           = preguntaDTO.Texto;
             pregunta.Descripcion     = preguntaDTO.Descripcion;
             pregunta.Orden           = preguntaDTO.OrdenPregunta;
             pregunta.IdTipoRespuesta = preguntaDTO.IdTipoRespuesta;
             pregunta.Estado          = preguntaDTO.EstadoPregunta;
             context.SaveChanges();
             preguntaDTO.IdEncuesta = pregunta.Seccion.IdEncuesta;
             return(true);
         }
         catch (Exception e)
         {
             //throw e;
             return(false);
         }
     }
 }
Ejemplo n.º 19
0
        public PreguntaDTO PreguntasNivel(int nivel, out String mensaje)
        {
            Random rnd = new Random();

            List <PreguntaDTO> preguntasList = datosDSet.PreguntasDeNivel(nivel, out String msj);

            if (!msj.Equals(""))
            {
                mensaje = msj;
                return(null);
            }
            if (error == true)
            {
                mensaje = "Error";
                return(null);
            }

            int         numPreg  = rnd.Next(preguntasList.Count());
            PreguntaDTO pregunta = preguntasList[numPreg];

            mensaje = null;
            return(pregunta);
        }