public ActionResult DeleteConfirmed(int id) { IntentosEvaluacion intentosEvaluacion = db.IntentosEvaluacion.Find(id); db.IntentosEvaluacion.Remove(intentosEvaluacion); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "IdIntento,Id,IdEvaluacion,FechaIntento")] IntentosEvaluacion intentosEvaluacion) { if (ModelState.IsValid) { db.Entry(intentosEvaluacion).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.IdEvaluacion = new SelectList(db.EvaluacionesCursos, "IdEvaluacion", "Id", intentosEvaluacion.IdEvaluacion); ViewBag.Id = new SelectList(db.UsuariosAsps, "Id", "Email", intentosEvaluacion.Id); return(View(intentosEvaluacion)); }
public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } IntentosEvaluacion intentosEvaluacion = db.IntentosEvaluacion.Find(id); if (intentosEvaluacion == null) { return(HttpNotFound()); } return(View(intentosEvaluacion)); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } IntentosEvaluacion intentosEvaluacion = db.IntentosEvaluacion.Find(id); if (intentosEvaluacion == null) { return(HttpNotFound()); } ViewBag.IdEvaluacion = new SelectList(db.EvaluacionesCursos, "IdEvaluacion", "Id", intentosEvaluacion.IdEvaluacion); ViewBag.Id = new SelectList(db.UsuariosAsps, "Id", "Email", intentosEvaluacion.Id); return(View(intentosEvaluacion)); }
// GET: IntentosEvaluacions/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } IntentosEvaluacion intentosEvaluacion = db.IntentosEvaluacion.Find(id); if (intentosEvaluacion == null) { return(HttpNotFound()); } var preguntas = db.PreguntasEvaluacion.Where(a => a.IdEvaluacion == intentosEvaluacion.IdEvaluacion).Select(a => a.Ponderacion).Sum(); var notaFinal = db.RespuestasIntento.Where(a => a.IdIntento == id).Select(a => a.NotaAsignada).Sum(); ViewBag.TotalPuntos = preguntas; ViewBag.NotaFinal = notaFinal; return(View(intentosEvaluacion)); }
public ActionResult Intento(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var users = db.Users.Where(u => u.UserName == User.Identity.Name).ToList(); IntentosEvaluacion intentosEvaluacion = new IntentosEvaluacion(); intentosEvaluacion.IdEvaluacion = id; intentosEvaluacion.Id = users[0].Id; intentosEvaluacion.FechaIntento = DateTime.Now; db.IntentosEvaluacion.Add(intentosEvaluacion); db.SaveChanges(); var preguntasEvaluacions = db.PreguntasEvaluacion.Where(w => w.IdEvaluacion == id).ToList(); preguntasEvaluacions.Shuffle(); ViewBag.IntentoId = intentosEvaluacion.IdIntento; var evaluacion = db.EvaluacionesCursos.FirstOrDefault(f => f.IdEvaluacion == id); var time = evaluacion?.FechaFin - evaluacion?.FechaInicio; if (time == null) { IntentosEvaluacion intento = db.IntentosEvaluacion.Find(intentosEvaluacion.Id); db.IntentosEvaluacion.Remove(intento); db.SaveChanges(); return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ViewBag.Minutos = time.Value.Hours > 0 ? time.Value.Hours * 60 : time.Value.Minutes; ViewBag.Segundos = time.Value.Seconds; if (ViewBag.Minutos == 0 && ViewBag.Segundos == 0) { IntentosEvaluacion intento = db.IntentosEvaluacion.Find(intentosEvaluacion.Id); db.IntentosEvaluacion.Remove(intento); db.SaveChanges(); return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } return(View(preguntasEvaluacions)); }
public async Task <ActionResult> Evaluar(FormCollection collection) { IntentosEvaluacion intentos = null; double nota = 0; double notaFinal = 0; foreach (var key in collection.Keys) { var data = collection[key.ToString()]; if (key.ToString().Equals("id")) { var id = int.Parse(data); intentos = db.IntentosEvaluacion.FirstOrDefault(f => f.IdIntento == id); if (intentos == null) { return(HttpNotFound()); } } else if (!key.Equals("__RequestVerificationToken")) { var idPregunta = int.Parse(key.ToString().Replace("[]", "")); var tipoPregunta = db.PreguntasEvaluacion.FirstOrDefault(f => f.IdPregunta == idPregunta)?.TipoPregunta.Tipo_Pregunta; switch (tipoPregunta) { case "TextArea": case "Text": { nota = 0; var respuestaCorrecta = db.RespuestasEvaluacion.FirstOrDefault(f => f.IdPregunta == idPregunta && f.Correcta); var respuesta = collection[key.ToString()]; var notaRespuesta = respuestaCorrecta?.Respuesta.Trim() == respuesta.Trim() ? respuestaCorrecta.Ponderacion : 0; nota += (double)notaRespuesta; notaFinal += nota; db.RespuestasIntento.Add(new RespuestasIntento { IdIntento = intentos.IdIntento, Respuesta = respuesta, NotaAsignada = notaRespuesta, Observacion = "No Asignada" }); break; } case "Checkbox": { var respuestas = collection[key.ToString()].Split(','); var idRespuestas = respuestas.Select(int.Parse).ToArray(); var correctas = db.RespuestasEvaluacion.Where(w => w.IdPregunta == idPregunta && w.Correcta).ToList().Count; foreach (var idRespuesta in idRespuestas) { var respuestaCorrecta = db.RespuestasEvaluacion.FirstOrDefault(f => f.IdPregunta == idPregunta && f.Correcta); var notaRespuesta = respuestaCorrecta?.IdRespuesta == idRespuesta ? respuestaCorrecta.Ponderacion / correctas : 0; nota = 0; nota += (double)notaRespuesta; notaFinal += nota; db.RespuestasIntento.Add(new RespuestasIntento { IdIntento = intentos.IdIntento, Respuesta = data, NotaAsignada = notaRespuesta, Observacion = "No asignada" }); } break; } default: { nota = 0; var respuestaCorrecta = db.RespuestasEvaluacion.FirstOrDefault(f => f.IdPregunta == idPregunta && f.Correcta); var idRespuesta = int.Parse(collection[key.ToString()]); var respuesta = db.RespuestasEvaluacion.FirstOrDefault(f => f.IdRespuesta == idRespuesta); var notaRespuesta = respuestaCorrecta?.IdRespuesta == idRespuesta ? respuestaCorrecta.Ponderacion : 0; nota += (double)notaRespuesta; notaFinal += nota; db.RespuestasIntento.Add(new RespuestasIntento { IdIntento = intentos.IdIntento, Respuesta = respuesta?.Respuesta, NotaAsignada = notaRespuesta, Observacion = "No Asignada" }); break; } } } } await db.SaveChangesAsync(); var intentoFinal = db.IntentosEvaluacion.Find(intentos.IdIntento); var preguntas = db.PreguntasEvaluacion.Where(a => a.IdEvaluacion == intentos.IdEvaluacion).Select(a => a.Ponderacion).Sum(); ViewBag.TotalPuntos = preguntas; ViewBag.NotaFinal = notaFinal; return(View(intentos)); }