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); }
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); }
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); }