Example #1
0
        public ActionResult VincularAlunosGrupo()
        {
            var                   keys               = Request.Form.AllKeys;
            int                   idGrupo            = Convert.ToInt32(Request.Form["idGrupo"]);
            var                   alunos             = Request.Form["alunos[]"].Split(',');
            MInscricaoTurma       mInscricaoTurma    = new MInscricaoTurma();
            List <InscricaoTurma> listInscricaoTurma = new List <InscricaoTurma>();

            foreach (var aluno in alunos)
            {
                int idInscricaoTurma = Convert.ToInt32(aluno);
                listInscricaoTurma.Add(mInscricaoTurma.BringOne(c => c.idInscricaoTurma == idInscricaoTurma));
            }
            MGrupo mGrupo = new MGrupo();
            Grupo  grupo  = mGrupo.BringOne(c => c.idGrupo == idGrupo);

            int[] idsAlunosRemover = grupo.InscricaoTurma.Where(c => !listInscricaoTurma.Exists(x => x.idInscricaoTurma == c.idInscricaoTurma)).Select(c => c.idInscricaoTurma).ToArray();
            List <InscricaoTurma> listAlunosRemover = new List <InscricaoTurma>();

            foreach (var aluno in idsAlunosRemover)
            {
                int            idInscricaoTurma = Convert.ToInt32(aluno);
                InscricaoTurma alunoRemover     = mInscricaoTurma.BringOne(c => c.idInscricaoTurma == idInscricaoTurma);
                listAlunosRemover.Add(alunoRemover);
            }
            listInscricaoTurma = listInscricaoTurma.Where(c => !grupo.InscricaoTurma.ToList().Exists(x => x.idInscricaoTurma == c.idInscricaoTurma)).ToList();
            List <InscricaoTurma> listAlunosVinculados = grupo.InscricaoTurma.ToList();

            mGrupo.DesvincularAlunoGrupo(grupo.idGrupo, listAlunosRemover.Select(c => c.idInscricaoTurma).ToArray());
            mGrupo.AdicionarAlunoGrupo(grupo.idGrupo, listInscricaoTurma.Select(c => c.idInscricaoTurma).ToArray());
            return(RedirectToAction("GerenciarGrupos", new { idMed = grupo.idMed }));
        }