Esempio n. 1
0
        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."));
            }
        }
Esempio n. 2
0
        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);
        }