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