/// <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); }
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); }
/// <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); } } }
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(); } }