public ActionResult RegistrarCalificacion(string clave, string idEstudiante, string calificacion) { int id; double nota; if (!int.TryParse(idEstudiante, out id)) { TempData["message"] = "ID no válido"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } if (!double.TryParse(calificacion, out nota)) { TempData["message"] = "Nota no válida"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } if (nota > 100 || nota < 1) { TempData["message"] = "Calificacion debe estar entre 1 y 100"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } //Recuperar la de la base de datos Asignatura asignatura = DB.GetAsignatura(clave); if (asignatura == null) { TempData["message"] = "Ha ocurrido un error"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } if (string.IsNullOrEmpty(asignatura.Clave)) { TempData["message"] = "Asignatura no encontrada"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } //Recuperar el estudiante User user = Models.User.SelectUserById(id); if (user == null) { TempData["message"] = "Ha ocurrido un error"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } //El usuario no existe if (user.ID == 0) { TempData["message"] = "ID estudiante no encontrado"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } //El usuario no es un estudiante if (user.Type != Models.User.Tipo.estudiante) { TempData["message"] = "ID estudiante no encontrado"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } Calificacion Calificacion = DB.SelectCalificacion(user, asignatura); if (Calificacion == null) { TempData["message"] = "Ha ocurrido un error"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } //El estudiante ya tiene una nota de esa asignatura if (Calificacion.Estudiante != null) { TempData["message"] = "Estudiante ya cuenta con dicha nota"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } Calificacion = new Calificacion(user, asignatura, nota); //Anadir el objeto calificacion a la base de datos if (!DB.AddCalificacion(Calificacion)) { TempData["message"] = "Ha ocurrido un error"; return(RedirectToAction("RegistrarCalificacion", "Admin")); } TempData["message"] = "Calificacion registrada con exito"; TempData["success"] = "true"; return(RedirectToAction("Index", "Admin")); }