Exemple #1
0
 public IActionResult Resolucion(CuestionarioAResolver cuestionario)
 {
     try
     {
         return(new JsonResult(this.service.ResolucionCuestionario(cuestionario))
         {
             StatusCode = 200
         });
     }
     catch (Exception e)
     {
         return(BadRequest(e));
     }
 }
        //public CuestionarioCorreccionDTO CorreccionCuestionario(CuestionarioACorregirDTO cuestionario)
        //{

        //    var RespuestasCorrectas = ((ICuestionarioRepository)Repository).RespuestasCorrectas(cuestionario.CuestionarioId);

        //    var RespuestasAlumnos = cuestionario.Respuestas.ToArray();

        //    var list = new List<RespuestaCompuestaDTO>();

        //    int cont = 0;
        //    double calificacion = 0;
        //    double calificacionParcial = 0;

        //    foreach (var r in RespuestasCorrectas)
        //    {

        //        if (r.Descripcion == RespuestasAlumnos[cont].Descripcion)
        //        {
        //            calificacion += 10.0 / RespuestasCorrectas.Count;
        //            calificacionParcial = 10.0 / RespuestasCorrectas.Count;
        //        }

        //        var respuesta = new RespuestaCompuestaDTO()
        //        {
        //            RespuestaAlumno = RespuestasAlumnos[cont].Descripcion,
        //            RespuestaCorrecta = r.Descripcion,
        //            CalificacionParcial = calificacionParcial
        //        };

        //        list.Add(respuesta);

        //        cont++;
        //        calificacionParcial = 0;
        //    }

        //    return new CuestionarioCorreccionDTO { CalificacionTotal = calificacion, Respuestas = list};
        //}


        //MODIFICAOD
        public CuestionarioCorreccionDTO ResolucionCuestionario(CuestionarioAResolver cuestionario)
        {
            var idCuestionario = repository.Traer <Cuestionario>().FirstOrDefault(x => x.ClaseId == cuestionario.ClaseId).CuestionarioID;

            // este metodo tiene que devolver todas las preguntas del cuestionario con sus respuesta correcta.
            var PreguntasRespuestasCorrectas = ((ICuestionarioRepository)Repository).RespuestasCorrectas(idCuestionario);

            var PreguntaRespuestasAlumnos = cuestionario.Preguntas.ToArray();

            var list = new List <RespuestaCompuestaDTO>();

            int    cont         = 0;
            double calificacion = 0;

            foreach (var p in PreguntasRespuestasCorrectas)
            {
                var r = p.RespuestaNavegator.FirstOrDefault();

                if (r.Descripcion == PreguntaRespuestasAlumnos[cont].Respuesta.Descripcion)
                {
                    calificacion += p.CalificacionParcial;

                    var respuestaCorrecta = new RespuestaCompuestaDTO()
                    {
                        RespuestaAlumno     = PreguntaRespuestasAlumnos[cont].Respuesta.Descripcion,
                        RespuestaCorrecta   = r.Descripcion,
                        CalificacionParcial = p.CalificacionParcial
                    };

                    list.Add(respuestaCorrecta);
                }
                else
                {
                    var respuestaInCorrecta = new RespuestaCompuestaDTO()
                    {
                        RespuestaAlumno     = PreguntaRespuestasAlumnos[cont].Respuesta.Descripcion,
                        RespuestaCorrecta   = r.Descripcion,
                        CalificacionParcial = 0
                    };

                    list.Add(respuestaInCorrecta);
                }

                cont++;
            }
            return(new CuestionarioCorreccionDTO {
                CalificacionTotal = Math.Round(calificacion, 2), Respuestas = list
            });
        }