public ActionResult Index([Bind(Include = "idProfesor,firma")] AsistenciaModel asistencia)
        {
            if (ModelState.IsValid)
            {
                String         dia        = obtenCadenaDiaHoy();
                DateTime       horaActual = DateTime.Now.AddMinutes(15);
                List <HORARIO> lHorario   = db.HORARIO.Where(h => h.ID_PROFESOR == asistencia.idProfesor && h.DIA_SEMANA.Contains(dia)).ToList();

                if (lHorario.Count > 0)
                {
                    int cont = 0;
                    foreach (HORARIO hAux in lHorario)
                    {
                        if (hAux.HORA_CLASE.HORA_INICIO.TimeOfDay <= DateTime.Now.AddMinutes(15).TimeOfDay&& hAux.HORA_CLASE.HORA_FIN.TimeOfDay > DateTime.Now.AddMinutes(15).TimeOfDay)
                        {
                            REGISTRO_ASISTENCIA raAux = db.REGISTRO_ASISTENCIA.FirstOrDefault(ra => ra.ID_HORARIO == hAux.ID_HORARIO && ra.FECHA == DateTime.Today);
                            if (raAux == null)
                            {
                                if (hAux.PROFESOR.FIRMA == asistencia.firma)
                                {
                                    REGISTRO_ASISTENCIA rAsistencia = new REGISTRO_ASISTENCIA();
                                    rAsistencia.FECHA      = DateTime.Now.Date;
                                    rAsistencia.HORA       = DateTime.Now;
                                    rAsistencia.ID_HORARIO = hAux.ID_HORARIO;
                                    db.REGISTRO_ASISTENCIA.Add(rAsistencia);
                                    db.SaveChanges();
                                    db.CALCULOINSERCIONRETARDO(rAsistencia.ID_HORARIO, rAsistencia.ID_REGISTRO_ASISTENCIA, rAsistencia.HORA);
                                    db.SaveChanges();
                                    ViewBag.idProfesor = obtenListadoProfesores();
                                    return(View());
                                }
                                ModelState.AddModelError("firma", "La firma es incorrecta");
                                break;
                            }
                            else
                            {
                                ModelState.AddModelError("", "Ya se registró una asistencia por parte del profesor en esta hora");
                            }
                        }
                        cont++;
                    }
                    if (cont >= lHorario.Count)
                    {
                        ModelState.AddModelError("idProfesor", "El profesor no tiene una clase asignada este día en está hora");
                    }
                }
                else
                {
                    ModelState.AddModelError("idProfesor", "El profesor no tiene una clase asignada este día en está hora");
                }
            }
            ViewBag.idProfesor = obtenListadoProfesores();
            return(View(asistencia));
        }
 public ActionResult Delete(int id)
 {
     try {
         REGISTRO_ASISTENCIA raAux = db.REGISTRO_ASISTENCIA.FirstOrDefault(ra => ra.ID_HORARIO == id);
         if (raAux == null)
         {
             HORARIO horario = db.HORARIO.Find(id);
             String  diasAnt = horario.DIA_SEMANA;
             db.HORARIO.Remove(horario);
             db.SaveChanges();
             db.DECHORASPROFESOR(id, diasAnt);
             return(RedirectToAction("Index"));
         }
         else
         {
             return(RedirectToAction("Error", "Home"));
         }
     }
     catch (Exception ex)
     {
         return(RedirectToAction("NoConect", "Home"));
     }
 }