public ActionResult Nueva(int? cursoId, FormCollection collection) { if (!collection.AllKeys.Contains("asistencia[]")) { Flash.Instance.Error("Asistencias", "Debe elegir por lo menos un alumno"); return Redirect(Request.UrlReferrer != null ? Request.UrlReferrer.AbsoluteUri : collection["NEXT"]); } string[] presentes = collection["asistencia[]"].Split(','); var fechaString = collection["FECHA"]; //var curso = db.Materias_X_Cursos.Find(cursoId); //var url = "/Curso/" + curso.MATERIA_X_CURSO_CICLO.CICLO_ANIO + "/" + curso. var fecha = DateTime.ParseExact(fechaString, "dd/MM/yyyy", CultureInfo.InvariantCulture); if (db.Asistencias.Any(a => a.ASISTENCIA_FECHA == fecha && a.MATERIA_X_CURSOS_ID == cursoId)) { Flash.Instance.Error("Asistencias", "Ya se tomó asistencia para este curso"); return Redirect(collection["NEXT"]); } IEnumerable<Cursada> cursadas = db.Cursadas .Include("CURSADA_ALUMNO") .OrderBy(c => c.CURSADA_ALUMNO.PERSONA_APELLIDO) .Where(c => c.CURSADA_MATERIAS_X_CURSOS_ID == cursoId).ToList(); foreach (Cursada cursada in cursadas) { Persona alumno = cursada.CURSADA_ALUMNO; var asistencia = new Asistencia(); asistencia.ASISTENCIA_FECHA = fecha; asistencia.ASISTENCIA_ALUMNO_ID = cursada.CURSADA_ALUMNOS_ID; asistencia.MATERIA_X_CURSOS_ID = cursoId; bool presente = presentes.Contains(cursada.CURSADA_ALUMNOS_ID.ToString()); if (presente) { asistencia.ASISTENCIA_PRESENTE = true; } db.Asistencias.Add(asistencia); db.SaveChanges(); } Flash.Instance.Success("Asistencias", "Se guardaron correctamente las Asistencias"); return Redirect(collection["NEXT"]); }
public IHttpActionResult GuardarAsistencias(int? id, string FECHA, [FromBody]List<GuardarAsistenciasVM> collection) { var fecha = DateTime.ParseExact(FECHA, "dd/MM/yyyy", CultureInfo.InvariantCulture); IEnumerable<Cursada> cursadas = _db.Cursadas .Include("CURSADA_ALUMNO") .OrderBy(c => c.CURSADA_ALUMNO.PERSONA_APELLIDO) .Where(c => c.CURSADA_MATERIAS_X_CURSOS_ID == id && c.CURSADA_ALUMNO != null).ToList(); // SI ESTAMOS EDITANDO UNA ASISTENCIA if (_db.Asistencias.Any(a => a.ASISTENCIA_FECHA == fecha && a.MATERIA_X_CURSOS_ID == id)) { //return BadRequest("Ya se tomó asistencia para este curso"); var asistencias = _db.Asistencias.Include("ALUMNO").Where(a => a.ASISTENCIA_FECHA == fecha && a.MATERIA_X_CURSOS_ID == id && a.ALUMNO != null) .ToList(); foreach (var asistencia in asistencias) { var asist = collection.SingleOrDefault(a => a.DNI == asistencia.ALUMNO.PERSONA_DOCUMENTO_NUMERO); asistencia.ASISTENCIA_PRESENTE = asist.PRESENTE; } _db.SaveChanges(); return Ok(); } foreach (Cursada cursada in cursadas) { Persona alumno = cursada.CURSADA_ALUMNO; var asistencia = new Asistencia(); asistencia.ASISTENCIA_FECHA = fecha; asistencia.ASISTENCIA_ALUMNO_ID = cursada.CURSADA_ALUMNOS_ID; asistencia.MATERIA_X_CURSOS_ID = id; var asiste = collection.SingleOrDefault(c => c.DNI == cursada.CURSADA_ALUMNO.PERSONA_DOCUMENTO_NUMERO); if (asiste != null) { asistencia.ASISTENCIA_PRESENTE = asiste.PRESENTE; } _db.Asistencias.Add(asistencia); _db.SaveChanges(); } return Ok(); }