public void calificar(CalificacionRequest notasDesarrollo)
        {
            var calificacion         = _context.Calificaciones.SingleOrDefault(c => c.Id == notasDesarrollo.CalificacionId);
            var evaluacion           = _context.Evaluaciones.SingleOrDefault(e => e.Id == calificacion.EvaluacionId);
            var estudiante           = _context.Cuenta.SingleOrDefault(e => e.Id == calificacion.EstudianteId);
            var respuestasDesarrollo = _context.RespuestaDesarrollo.Where(i => i.EstudianteId == estudiante.Id && i.Desarrollo.EvaluacionId == calificacion.EvaluacionId).ToList();
            int cantRespuestas       = respuestasDesarrollo.Count;
            int respuestasCorrectas  = 0;

            foreach (var respDesarrollo in respuestasDesarrollo)
            {
                var calDes = notasDesarrollo.CalificacionesDesarrollo;
                foreach (var nota in calDes)
                {
                    if (nota.Nota > 0 && nota.Nota <= 100)
                    {
                        if (nota.DesarrolloId == respDesarrollo.DesarrolloId)
                        {
                            var d = _context.Desarrollo.SingleOrDefault(d => d.Id == nota.DesarrolloId);
                            if (d != null)
                            {
                                respDesarrollo.Puntaje = nota.Nota;
                                if (nota.Nota >= d.PuntajeAprobacion)
                                {
                                    respuestasCorrectas++;
                                }
                            }
                        }
                    }
                    else
                    {
                        throw (new Exception("Una nota no es mayor a 0 y menor o igual a 100"));
                    }
                }
            }

            int[] retornovof = calificarVof(notasDesarrollo.CalificacionId);

            int cantidadTotalPreguntas = retornovof[1] + cantRespuestas;
            int cantidadCorrectas      = retornovof[0] + respuestasCorrectas;

            int notaFinal = (cantidadCorrectas * 100) / cantidadTotalPreguntas;

            calificacion.FechaCorregida = DateTime.Now;

            if (notaFinal >= evaluacion.CalificacionAprobacion)
            {
                calificacion.EstadoCalificacion = "Aprobado";
            }
            else
            {
                calificacion.EstadoCalificacion = "Reprobado";
            }
            calificacion.Nota = notaFinal;
            _context.SaveChanges();
        }
        public IActionResult calificar(CalificacionRequest notasDesarrollo)
        {
            try{
                _nodoFacultad.SeleccionarNodoFacultad(notasDesarrollo.Facultad);
                int idCalificacion = _evaluacion.ObtenerIdCalifacion(notasDesarrollo.EvaluacionId, notasDesarrollo.EstudianteId);
                notasDesarrollo.CalificacionId = idCalificacion;
                _evaluacion.calificar(notasDesarrollo);

                return(Ok(new { exito = "Se califico la evaluacion" }));
            }
            catch (Exception e) {
                return(BadRequest(new { error = "Algo salio mal", source = e.Source, message = e.Message, trace = e.StackTrace }));
            }
        }