Пример #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            IntentosEvaluacion intentosEvaluacion = db.IntentosEvaluacion.Find(id);

            db.IntentosEvaluacion.Remove(intentosEvaluacion);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #2
0
 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));
 }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        // 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));
        }