public ActionResult AgregarEvaluacionesOutcomes() { if (!PermitirAcceso()) return RedirigirFaltaAcceso(); var ActualPeriodoId = Session.Get(GlobalKey.ActualPeriodoId).ToString(); var AgregarEvaluacionesOutcomesViewModel = new AgregarEvaluacionesOutcomesViewModel(ActualPeriodoId); return View(AgregarEvaluacionesOutcomesViewModel); }
public ActionResult AgregarEvaluacionesOutcomes(AgregarEvaluacionesOutcomesViewModel model, FormCollection formCollection) { if (!PermitirAcceso()) return RedirigirFaltaAcceso(); var ValidationLogic = new ValidationLogic(ModelState); var AlumnosValidos = new List<String>(); var AlumnosNuevos = new List<String>(); ValidationLogic.Valid(model.AlumnosId, "AlumnosId", ValidationOption.IsNotEmpty); ValidationLogic.Valid(model.OutcomeId, "OutcomeId", ValidationOption.IsNotEmpty | ValidationOption.IsNotZero); ValidationLogic.Valid(model.PeriodoId, "PeriodoId", ValidationOption.IsNotEmpty | ValidationOption.IsNotZero); ValidationLogic.Valid(model.ProfesorId, "ProfesorId", ValidationOption.IsNotEmpty); if (ModelState.IsValid) { var Outcome = SSIARepositoryFactory.GetOutcomesRepository().GetOne(model.OutcomeId); var Profesor = SSIARepositoryFactory.GetProfesoresRepository().GetOne(model.ProfesorId); var Periodo = SSIARepositoryFactory.GetPeriodosRepository().GetOne(model.PeriodoId); if (Outcome == null) ModelState.AddModelError("OutcomeId", ""); if (Profesor == null) ModelState.AddModelError("ProfesorId", ""); if (Periodo == null) ModelState.AddModelError("PeriodoId", ""); AlumnosNuevos = model.AlumnosId.Split(new char[] { ',', ';', ':', ' ' }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList(); AlumnosValidos = SSIARepositoryFactory.GetAlumnosRepository().GetWhere(x => AlumnosNuevos.Contains(x.AlumnoId)).Select(x => x.AlumnoId).ToList(); if (AlumnosValidos.Count != AlumnosNuevos.Count) { ModelState.AddModelError("AlumnosId", ""); PostMessage("Alguno de los alumnos ingresados no existe.", MessageType.Error); } } if (!ModelState.IsValid) { if (AlumnosValidos.Count != AlumnosNuevos.Count) PostMessage("Alguno de los alumnos ingresados no existe. Revisar los datos ingresados.", MessageType.Error); else PostMessage("Revisar los datos ingresados.", MessageType.Error); return View(model); } try { using (TransactionScope scope = new TransactionScope()) { var EvaluacionesOutcomeProfesor = new List<EvaluacionesOutcomeProfesorBE>(); foreach (var AlumnoNuevo in AlumnosValidos) { EvaluacionesOutcomeProfesor.Add(new EvaluacionesOutcomeProfesorBE() { AlumnoId = AlumnoNuevo, ProfesorId = model.ProfesorId, PeriodoId = model.PeriodoId, OutcomeId = model.OutcomeId, Nota = "NE", EvaluacionId = null }); } ePortafolioRepositoryFactory.GetEvaluacionesOutcomeProfesorRepository().InsertOrUpdate(EvaluacionesOutcomeProfesor); ePortafolioRepositoryFactory.SubmitChanges(true); scope.Complete(); PostMessage("Los alumnos han sido asociados exitosamente.", MessageType.Success); } } catch (Exception ex) { PostMessage("Ha ocurrido un error.", MessageType.Error); return View(model); } return RedirectToAction("MostrarEvaluacionesOutcomes", new { ProfesorId = model.ProfesorId, PeriodoId = model.PeriodoId, OutcomeId = model.OutcomeId }); }