Ejemplo n.º 1
0
 /// <summary>
 /// Este método se utiliza para actualizar los datos de una sesión existente en la base
 /// de datos al responder una pregunta.
 /// </summary>
 /// <param name="pIdSesion">El ID de la sesión.</param>
 /// <param name="pSegundosTranscurridos">Los segundos transcurridos hasta la respuesta.</param>
 /// <param name="pEsCorrecta">Si la respuesta fue correcta o no.</param>
 /// <returns></returns>
 public static bool Responder(int pIdSesion, double pSegundosTranscurridos, bool pEsCorrecta, int pIdPregunta)
 {
     using (var bDbContext = new ShockQuizDbContext())
     {
         using (UnitOfWork bUoW = new UnitOfWork(bDbContext))
         {
             Sesion sesionActual = bUoW.RepositorioSesion.ObtenerSesionId(pIdSesion);
             sesionActual.SegundosTranscurridos += pSegundosTranscurridos;
             bool resultado = sesionActual.Responder(pEsCorrecta, pIdPregunta);
             bUoW.GuardarCambios();
             return(resultado);
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Este método se encarga de cancelar una sesión que se encuentre activa.
 /// </summary>
 /// <param name="pIdSesion">El ID de la sesión a cancelar.</param>
 public static void CancelarSesion(int pIdSesion)
 {
     using (var bDbContext = new ShockQuizDbContext())
     {
         using (UnitOfWork bUoW = new UnitOfWork(bDbContext))
         {
             Sesion sesionActiva = bUoW.RepositorioSesion.ObtenerSesionId(pIdSesion);
             sesionActiva.FechaFin = DateTime.Now;
             foreach (Pregunta pregunta in sesionActiva.Preguntas.ToList())
             {
                 sesionActiva.Responder(false, pregunta.PreguntaId);
             }
             sesionActiva.SesionFinalizada = true;
             bUoW.GuardarCambios();
         }
     }
 }