Ejemplo n.º 1
0
        public ActionResult AgregarAlumnosGrupo(int GrupoId, FormCollection formCollection)
        {
            if (!PermitirAcceso())
                return RedirigirFaltaAcceso();

            var AlumnoId = Session.Get(GlobalKey.UsuarioId).ToString();
            var Grupo = ePortafolioRepositoryFactory.GetGruposRepository().GetOne(GrupoId);
            var EsIndependiente = Grupo.ExtraTrabajo.Iniciativa != "UPC";

            if (Grupo.LiderId != AlumnoId)
                PostMessage("No tiene los permisos necesarios agregar estudiantes al grupo.", MessageType.Error);
            else
            {
                List<String> AlumnosNuevos = new List<String>();

                AlumnosNuevos = (formCollection["IndependieteAlumnos"] ?? "").Split(new char[] { ',', ';', ':', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();

                if (!EsIndependiente)
                {
                    foreach (var key in formCollection)
                    {
                        var stringKey = key.ToString();

                        if (!stringKey.StartsWith("A"))
                            continue;

                        bool isChecked = false;
                        if (Boolean.TryParse(formCollection[stringKey], out isChecked) == false)
                            AlumnosNuevos.Add(stringKey.Substring(1));
                    }
                }

                try
                {
                    AlumnosNuevos = AlumnosNuevos.Distinct().ToList();
                    var AlumnosValidos = SSIARepositoryFactory.GetAlumnosRepository().GetWhere(x => AlumnosNuevos.Contains(x.AlumnoId)).Select(x => x.AlumnoId).ToList();

                    using (TransactionScope scope = new TransactionScope())
                    {
                        var AlumnosConGrupo = ePortafolioRepositoryFactory.GetAlumnosGrupoRepository().GetAlumnosGrupoTrabajo(Grupo.TrabajoId);

                        var MensajeError = "";

                        if (AlumnosConGrupo.Any(x => AlumnosValidos.Contains(x.AlumnoId)))
                            MensajeError += "Alguno de los estudiantes seleccionados ya tiene grupo. ";

                        if (AlumnosValidos.Count != AlumnosNuevos.Count)
                            MensajeError += "Alguno de los codigos ingresados no existe. ";

                        if (MensajeError != "")
                        {
                            MensajeError += "No todos los estudiantes han sido agregados.";
                            PostMessage(MensajeError, MessageType.Error);
                        }

                        AlumnosValidos = AlumnosValidos.Where(x => !AlumnosConGrupo.Any(ag => ag.AlumnoId == x)).ToList();

                        foreach (var AlumnoNuevo in AlumnosValidos)
                        {
                            ePortafolioRepositoryFactory.GetAlumnosGrupoRepository().Insert(new AlumnosGrupoBE()
                                                                                {
                                                                                    AlumnoId = AlumnoNuevo,
                                                                                    GrupoId = Grupo.GrupoId,
                                                                                    Nota = "NE",
                                                                                    EvaluacionId = null
                                                                                });
                        }

                        ePortafolioRepositoryFactory.SubmitChanges(true);

                        scope.Complete();

                        if (MensajeError == "")
                            PostMessage("Los alumnos han sido agregados exitosamente.", MessageType.Success);
                    }
                }
                catch (Exception ex)
                {
                    PostMessage("Ha ocurrido un error.", MessageType.Error);
                }
            }

            var MostrarDetalleGrupoViewModel = new MostrarDetalleGrupoViewModel(Grupo.TrabajoId, AlumnoId);

            return PartialView("MostrarDetalleGrupo", MostrarDetalleGrupoViewModel);
        }
Ejemplo n.º 2
0
        public ActionResult EliminarAlumnoGrupo(int GrupoId, String AlumnoId)
        {
            if (!PermitirAcceso())
                return RedirigirFaltaAcceso();

            var ActualAlumnoId = Session.Get(GlobalKey.UsuarioId).ToString();
            var Grupo = ePortafolioRepositoryFactory.GetGruposRepository().GetOne(GrupoId);

            if (Grupo.LiderId != ActualAlumnoId)
                PostMessage("No tiene los permisos necesarios para eliminar a un estudiante del grupo.", MessageType.Error);
            else if (AlumnoId == ActualAlumnoId)
                PostMessage("No se puede eliminar al lider del grupo.", MessageType.Error);
            else
            {
                try
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        ePortafolioRepositoryFactory.GetAlumnosGrupoRepository().DeleteWhere(x => x.AlumnoId == AlumnoId && x.GrupoId == GrupoId);
                        ePortafolioRepositoryFactory.SubmitChanges(true);

                        scope.Complete();
                        PostMessage("Se ha eliminado al alumno exitosamente.", MessageType.Success);
                    }

                }
                catch (Exception ex)
                {
                    PostMessage("Ha ocurrido un error.", MessageType.Error);
                }
            }

            var MostrarDetalleGrupoViewModel = new MostrarDetalleGrupoViewModel(Grupo.TrabajoId, ActualAlumnoId);

            return PartialView("MostrarDetalleGrupo", MostrarDetalleGrupoViewModel);
        }
Ejemplo n.º 3
0
        public ActionResult CambiarLiderGrupo(int GrupoId, String AlumnoId)
        {
            if (!PermitirAcceso())
                return RedirigirFaltaAcceso();

            var ActualAlumnoId = Session.Get(GlobalKey.UsuarioId).ToString();
            var Grupo = ePortafolioRepositoryFactory.GetGruposRepository().GetOne(GrupoId);

            if (Grupo.LiderId != ActualAlumnoId)
                PostMessage("No tiene los permisos necesarios para cambiar al lider del grupo.", MessageType.Error);
            else
            {
                Grupo.LiderId = AlumnoId;

                try
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        ePortafolioRepositoryFactory.GetGruposRepository().Update(Grupo);
                        ePortafolioRepositoryFactory.SubmitChanges(true);

                        scope.Complete();
                        PostMessage("Se ha cambiado el lider exitosamente.", MessageType.Success);
                    }
                }
                catch (Exception ex)
                {
                    PostMessage("Ha ocurrido un error.", MessageType.Error);
                }
            }

            var MostrarDetalleGrupoViewModel = new MostrarDetalleGrupoViewModel(Grupo.TrabajoId, ActualAlumnoId);

            return PartialView("MostrarDetalleGrupo", MostrarDetalleGrupoViewModel);
        }