示例#1
0
        /// <summary>
        ///Devuelve el resultado de responder a una pregunta
        /// </summary>
        /// <param name="pIdSesionActual">El ID de la sesión actual</param>
        /// <param name="pIdPregunta">El ID de la pregunta a responder</param>
        /// <param name="pIdRespuesta">El ID de la respuesta seleccionada por el usuario</param>
        /// <returns></returns>
        public ResultadoRespuesta Responder(int pIdSesionActual, int pIdPregunta, int pIdRespuesta)
        {
            DetenerTimer();
            ResultadoRespuesta resultado = ServiciosPregunta.Responder(pIdPregunta, pIdRespuesta);

            resultado.FinSesion = ServiciosSesion.Responder(pIdSesionActual, ayudanteTimer.TiempoTranscurrido, resultado.EsCorrecta, pIdPregunta);
            return(resultado);
        }
示例#2
0
        private void LogicaRespuesta(Button pBtnRespuesta, int pIndiceRespuesta)
        {
            ResultadoRespuesta resultado = fachada.Responder(idSesionActual, preguntaActual.IdPregunta, preguntaActual.Respuestas[pIndiceRespuesta].IdRespuesta);

            if (!resultado.EsCorrecta)
            {
                pBtnRespuesta.BackColor = System.Drawing.Color.Red;
            }
            ColorBotonCorrecto(resultado.RespuestaCorrecta);
            Finalizar(resultado);
        }
示例#3
0
        /// <summary>
        /// Este método se utiliza para obtener el resultado a la hora de responder una pregunta presente
        /// en la base de datos.
        /// </summary>
        /// <param name="pIdPregunta">El ID de la pregunta a responder.</param>
        /// <param name="pIdRespuesta">El ID de la respuesta seleccionada por el usuario.</param>
        /// <returns></returns>
        public static ResultadoRespuesta Responder(int pIdPregunta, int pIdRespuesta)
        {
            ResultadoRespuesta resultado = new ResultadoRespuesta();

            using (var bDbContext = new ShockQuizDbContext())
            {
                using (UnitOfWork bUoW = new UnitOfWork(bDbContext))
                {
                    Respuesta respuestaCorrecta = bUoW.RepositorioPregunta.ObtenerRespuestaCorrecta(pIdPregunta);
                    resultado.EsCorrecta        = (respuestaCorrecta.RespuestaId == pIdRespuesta);
                    resultado.RespuestaCorrecta = respuestaCorrecta.DefRespuesta;
                    return(resultado);
                }
            }
        }
示例#4
0
 private void Finalizar(ResultadoRespuesta pResultado)
 {
     if (pResultado.TiempoLimiteFinalizado)
     {
         btnSiguiente.Enabled = false;
         MessageBox.Show("¡Tiempo agotado! Puntaje: " + fachada.ObtenerPuntaje(idSesionActual), "Fin de la partida", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         this.Close();
     }
     else if (pResultado.FinSesion)
     {
         fachada.DetenerTimer();
         btnSiguiente.Enabled = false;
         MessageBox.Show("Puntaje: " + fachada.ObtenerPuntaje(idSesionActual), "Fin de la partida", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);;
         this.Close();
     }
 }