示例#1
0
        public ActionResult AgregarEvaluacionesOutcomes()
        {
            if (!PermitirAcceso())
                return RedirigirFaltaAcceso();

            var ActualPeriodoId = Session.Get(GlobalKey.ActualPeriodoId).ToString();
            var AgregarEvaluacionesOutcomesViewModel = new AgregarEvaluacionesOutcomesViewModel(ActualPeriodoId);

            return View(AgregarEvaluacionesOutcomesViewModel);
        }
示例#2
0
        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 });
        }