//Devuelve todas las asignaciones con datos extendidos filtrado por evaluacion public AsignacionInfoDto GetAsignFromEvalAndAsig(int idEval, int idAsig) { AsignacionInfoDto AsignacionesInfo = new AsignacionInfoDto(); List <RespuestaDto> ListaRespuestas = Mapper.Map <List <RespuestaDto> >(_context.Respuestas.Where(r => r.EvaluacionId == idEval).ToList()); var asignacionBD = (from res in _context.Respuestas where res.EvaluacionId == idEval select new { res.Id, res.PreguntaId, res.Estado, res.EvaluacionId } into respuestas join p in _context.Preguntas on respuestas.PreguntaId equals p.Id select new { p.Id, p.AsignacionId, p.Pregunta, p.Correcta } into preguntas join asig in _context.Asignaciones on preguntas.AsignacionId equals asig.Id where asig.Id == idAsig select new { asig.Id, asig.Nombre, asig.PreguntasDeAsignacion } into asignacionesEntity select asignacionesEntity).Distinct().FirstOrDefault(); AsignacionesInfo.Id = asignacionBD.Id; AsignacionesInfo.Nombre = asignacionBD.Nombre; AsignacionesInfo.Preguntas = ChangePregunta(asignacionBD.PreguntasDeAsignacion, ListaRespuestas); var nota = _context.NotasAsignaciones.Where(r => r.EvaluacionId == idEval && r.AsignacionId == idAsig).FirstOrDefault(); if (nota != null) { AsignacionesInfo.Notas = nota.Notas; } return(AsignacionesInfo); }
//Filtra por evaluación y sección devolviendo una lista de asignaciones public IEnumerable <AsignacionInfoDto> GetAsignFromEvalAndSection(int idEval, int idSection) { List <AsignacionInfoDto> AsignacionesInfo = new List <AsignacionInfoDto>(); List <RespuestaDto> ListaRespuestas = Mapper.Map <List <RespuestaDto> >(_context.Respuestas.Where(r => r.EvaluacionId == idEval).ToList()); var asignaciones = (from res in _context.Respuestas where res.EvaluacionId == idEval select new { res.Id, res.PreguntaId, res.Estado, res.EvaluacionId } into respuestas join p in _context.Preguntas on respuestas.PreguntaId equals p.Id select new { p.Id, p.AsignacionId, p.Pregunta, } into preguntas join asig in _context.Asignaciones on preguntas.AsignacionId equals asig.Id where asig.SectionId == idSection select new { asig.Id, asig.Nombre, asig.PreguntasDeAsignacion } into asignacionesEntity select asignacionesEntity).Distinct().ToList(); foreach (var asignacion in asignaciones) { var introducirasig = new AsignacionInfoDto(); introducirasig.Id = asignacion.Id; introducirasig.Nombre = asignacion.Nombre; introducirasig.Preguntas = changePregunta(asignacion.PreguntasDeAsignacion, ListaRespuestas); AsignacionesInfo.Add(introducirasig); } return(AsignacionesInfo); }
//Devuelve todas las asignaciones con datos extendidos filtrado por evaluacion public IEnumerable <AsignacionInfoDto> GetAsignFromEval(int idEval) { List <AsignacionInfoDto> AsignacionesInfo = new List <AsignacionInfoDto>(); List <RespuestaDto> ListaRespuestas = Mapper.Map <List <RespuestaDto> >(_context.Respuestas.Where(r => r.EvaluacionId == idEval).ToList()); var asignaciones = (from res in _context.Respuestas where res.EvaluacionId == idEval select new { res.Id, res.PreguntaId, res.Estado, res.EvaluacionId } into respuestas join p in _context.Preguntas on respuestas.PreguntaId equals p.Id select new { p.Id, p.AsignacionId, p.Pregunta, } into preguntas join asig in _context.Asignaciones on preguntas.AsignacionId equals asig.Id select new { asig.Id, asig.Nombre, asig.PreguntasDeAsignacion } into asignacionesEntity select asignacionesEntity).Distinct().ToList(); foreach (var asignacion in asignaciones) { var introducirasig = new AsignacionInfoDto { Id = asignacion.Id, Nombre = asignacion.Nombre, Preguntas = ChangePregunta(asignacion.PreguntasDeAsignacion, ListaRespuestas) }; var nota = _context.NotasAsignaciones.Where(r => r.EvaluacionId == idEval && r.AsignacionId == asignacion.Id).FirstOrDefault(); if (nota != null) { introducirasig.Notas = nota.Notas; } AsignacionesInfo.Add(introducirasig); } return(AsignacionesInfo); }