public IActionResult GetEvaluationsWithProgress(int id, [FromBody] EvaluacionInfoPaginationDto EvaluacionParaFiltrar) { try { //Comprueba que el body del json es correcto sino devolvera null //Si esto ocurre devolveremos un error if (EvaluacionParaFiltrar == null) { return(BadRequest()); } //Si no cumple con el modelo de creación devuelve error if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var EvaluacionesFiltradas = new List <EvaluacionInfoWithProgressDto>(); var Evals = _evaluacionInfoRepository.GetEvaluationsWithProgress(id, EvaluacionParaFiltrar); EvaluacionesFiltradas = Evals.ToList(); //Hacemos un mapeo de la pregunta que recogimos var EvaluacionesResult = Mapper.Map <List <EvaluacionInfoWithProgressDto> >(EvaluacionesFiltradas); return(Ok(new { EvaluacionesResult })); } catch (Exception ex) { _logger.LogCritical("Se recogio un error al recibir la petición post de recoger una lista filtrada de evaluaciones con id de proyecto " + id + ": " + ex); return(StatusCode(500, "Un error ha ocurrido mientras se procesaba su petición.")); } }
public IActionResult GetEvaluationInfoAndPageFiltered(int id, int pageNumber, [FromBody] EvaluacionInfoPaginationDto EvaluacionParaFiltrar) { try { //Comprueba que el body del json es correcto sino devolvera null //Si esto ocurre devolveremos un error if (EvaluacionParaFiltrar == null) { return(BadRequest()); } //Si no cumple con el modelo de creación devuelve error if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var EvaluacionesFiltradas = new List <EvaluacionInfoDto>(); var NumEvals = 0; if (id != 0) { var Evals = _evaluacionInfoRepository.GetEvaluationInfoAndPageFiltered(id, pageNumber, EvaluacionParaFiltrar); NumEvals = Evals.Count(); EvaluacionesFiltradas = Evals.ToList();//Skip(10 * pageNumber).Take(10). } else { var Evals = _evaluacionInfoRepository.GetEvaluationInfoAndPageFilteredAdmin(pageNumber, EvaluacionParaFiltrar); NumEvals = Evals.Count(); EvaluacionesFiltradas = Evals.ToList();//Skip(10 * pageNumber).Take(10). } //Hacemos un mapeo de la pregunta que recogimos var EvaluacionesResult = Mapper.Map <List <EvaluacionInfoDto> >(EvaluacionesFiltradas); return(Ok(new { NumEvals, EvaluacionesResult })); } catch (Exception ex) { _logger.LogCritical("Se recogio un error al recibir la petición post de recoger una lista filtrada de evaluaciones con id de proyecto " + id + " y paginado con número " + pageNumber + ": " + ex); return(StatusCode(500, "Un error ha ocurrido mientras se procesaba su petición.")); } }
//Metodo que devuelve un filtrado de evaluaciones paginada sin proyectos public List <EvaluacionInfoDto> GetEvaluationInfoAndPageFilteredAdmin(int pageNumber, EvaluacionInfoPaginationDto Evaluacion) { //Recogemos las evaluaciones y la paginamos List <EvaluacionInfoDto> EvaluacionesInformativas = new List <EvaluacionInfoDto>(); List <EvaluacionEntity> Evaluaciones; if (Evaluacion.Estado != null && Evaluacion.Estado != "") { Evaluaciones = _context.Evaluaciones. Include(r => r.ProyectoEntity). ThenInclude(p => p.UserEntity). Where(e => e.Estado == Boolean.Parse(Evaluacion.Estado) && e.Fecha.Date.ToString("dd/MM/yyyy").Contains(Evaluacion.Fecha) && e.ProyectoEntity.UserNombre.ToLower().Contains(Evaluacion.UserNombre.ToLower()) ).OrderByDescending(e => e.Fecha).ToList(); } else { Evaluaciones = _context.Evaluaciones. Include(r => r.ProyectoEntity). ThenInclude(p => p.UserEntity). Where(e => e.Fecha.Date.ToString("dd/MM/yyyy").Contains(Evaluacion.Fecha) && e.ProyectoEntity.Nombre.Contains(Evaluacion.Nombre) && e.ProyectoEntity.UserNombre.ToLower().Contains(Evaluacion.UserNombre.ToLower()) ).OrderByDescending(e => e.Fecha).ToList(); } //Encuentra la informacion de la evaluacion y lo introduce en un objeto foreach (var evaluacion in Evaluaciones) { EvaluacionInfoDto EvaluacionInfo = new EvaluacionInfoDto { Id = evaluacion.Id, Fecha = evaluacion.Fecha, Estado = evaluacion.Estado, Nombre = evaluacion.ProyectoEntity.Nombre, UserNombre = evaluacion.ProyectoEntity.UserNombre, NotasEv = evaluacion.NotasEvaluacion, NotasOb = evaluacion.NotasObjetivos }; if (evaluacion.Estado == false) { EvaluacionInfo.Puntuacion = CalculaPuntuacion(evaluacion.Id); } else { EvaluacionInfo.Puntuacion = evaluacion.Puntuacion; } if (0 < _context.NotasAsignaciones.Where(r => r.EvaluacionId == evaluacion.Id && r.Notas != null && r.Notas != "").Count()) { EvaluacionInfo.FlagNotasAsig = true; } else { EvaluacionInfo.FlagNotasAsig = false; } if (0 < _context.NotasSections.Where(r => r.EvaluacionId == evaluacion.Id && r.Notas != null && r.Notas != "").Count()) { EvaluacionInfo.FlagNotasSec = true; } else { EvaluacionInfo.FlagNotasSec = false; } var listaev = _context.Evaluaciones.Where(r => r.ProyectoId == evaluacion.ProyectoId && r.Estado == true).ToList(); double suma = 0; foreach (var ev in listaev) { suma += ev.Puntuacion; } if (listaev.Count > 0) { EvaluacionInfo.Media = suma / listaev.Count; } else { EvaluacionInfo.Media = -1; } //Añade el objeto en la lista EvaluacionesInformativas.Add(EvaluacionInfo); } return(EvaluacionesInformativas); }