Beispiel #1
0
        public DTOListaProgramaPrograma ConsultarProgramaMatriculaGestorUC(int idGestor, int idPrograma, string filtroAluno)
        {
            Usuario usuario = new BMUsuario().ObterPorId(idGestor);

            if (usuario == null)
            {
                throw new AcademicoException("Usuário não localizado na base");
            }

            if (usuario.ListaPerfil == null)
            {
                throw new AcademicoException("Usuário sem permissão de acesso à funcionalidade");
            }

            if (!usuario.ListaPerfil.Any(x => x.Perfil.ID == (int)enumPerfil.GestorUC))
            {
                throw new AcademicoException("Usuário sem perfil de gestor");
            }

            Programa programa = new BMPrograma().ObterPorId(idPrograma);

            IList <MatriculaPrograma> matProg = new BMMatriculaPrograma().ObterUsuariosPorPrograma(programa.ID, filtroAluno, "");

            if (programa == null || programa.Ativo == false)
            {
                throw new AcademicoException("Não há programas com esses dados informados");
            }


            DTOListaProgramaPrograma retorno = new DTOListaProgramaPrograma();
            Programa objPrograma             = new Programa();

            retorno.CodigoPrograma = Convert.ToString(programa.ID);
            retorno.NomePrograma   = programa.Nome;

            if (matProg.Count > 0)
            {
                foreach (var aluno in matProg)
                {
                    DTOListaProgramaMatriculaPrograma listMatriculados = new DTOListaProgramaMatriculaPrograma();
                    listMatriculados.Id               = aluno.Usuario.ID;
                    listMatriculados.Nome             = aluno.Usuario.Nome;
                    listMatriculados.UF               = aluno.UF.Sigla;
                    listMatriculados.NivelOcupacional = aluno.NivelOcupacional.Nome;
                    listMatriculados.StatusMatricula  = Convert.ToString(aluno.StatusMatricula);
                    retorno.ListaMatriculaPrograma.Add(listMatriculados);
                }
            }


            return(retorno);
        }
        public List <DTOListaProgramaPrograma> ListarProgramasDisponiveis(int pIdUsuario)
        {
            programaBM = new BMPrograma();

            IList <DTOListaProgramaPrograma> lstResult = new List <DTOListaProgramaPrograma>();

            IList <ProgramaSolucaoEducacional> lstP;

            if (pIdUsuario > 0)
            {
                lstP = programaBM.ObterPorUsuario(pIdUsuario);
            }
            else
            {
                lstP = programaBM.ObterPrograSolucaoEducacional();
            }


            foreach (var pr in lstP)
            {
                DTOListaProgramaPrograma pDTO = new DTOListaProgramaPrograma()
                {
                    CodigoPrograma = pr.Programa.ID.ToString(),
                    NomePrograma   = pr.Programa.Nome
                };


                IList <MatriculaPrograma> lstMtp = pIdUsuario == 0 ? pr.Programa.ListaMatriculaPrograma : pr.Programa.ListaMatriculaPrograma.Where(x => x.Usuario.ID == pIdUsuario).ToList();

                foreach (MatriculaPrograma p in lstMtp)
                {
                    DTOListaProgramaMatriculaPrograma mpDTO = new DTOListaProgramaMatriculaPrograma()
                    {
                        StatusMatricula = p.StatusMatricula.ToString()
                    };

                    pDTO.ListaMatriculaPrograma.Add(mpDTO);
                }

                DTOListaProgramaSolucaoEducacional seDTO = new DTOListaProgramaSolucaoEducacional()
                {
                    CodigoSolucaoEducacional = pr.SolucaoEducacional.ID.ToString(),
                    NomeSolucaoEducacional   = pr.SolucaoEducacional.Nome,
                };

                if (pIdUsuario > 0)
                {
                    IList <MatriculaOferta> lstMo = pr.SolucaoEducacional.ListaOferta.Select(x => x.ListaMatriculaOferta).FirstOrDefault();


                    lstMo = lstMo.Where(x => x.Usuario.ID.Equals(pIdUsuario)).ToList();

                    foreach (MatriculaOferta mo in lstMo)
                    {
                        MatriculaTurma mt = mo.Oferta.ListaTurma.Where(x => x.Oferta.ID == mo.Oferta.ID)
                                            .Select(x => x.ListaMatriculas).FirstOrDefault()
                                            .Where(x => x.MatriculaOferta.Usuario.ID == mo.Usuario.ID &&
                                                   !(x.MatriculaOferta.StatusMatricula.Equals(enumStatusMatricula.CanceladoAdm) &&
                                                     x.MatriculaOferta.StatusMatricula.Equals(enumStatusMatricula.CanceladoAluno)))
                                            .OrderByDescending(x => x.DataMatricula)
                                            .FirstOrDefault();

                        DTOListaProgramaSolucaoEducacionalMatricula mtDTO = new DTOListaProgramaSolucaoEducacionalMatricula();

                        if (mt != null)
                        {
                            mtDTO.DataSolicitacao = mo.DataSolicitacao;
                            mtDTO.StatusMatricula = mt.MatriculaOferta.StatusMatricula.ToString();
                        }

                        else
                        {
                            mtDTO.DataSolicitacao = mo.DataSolicitacao;
                            mtDTO.StatusMatricula = mo.StatusMatricula.ToString();
                        }

                        seDTO.ListaSolucaoEducacionalMatricula.Add(mtDTO);
                    }
                }

                foreach (SolucaoEducacionalTags tg in pr.SolucaoEducacional.ListaTags)
                {
                    DTOListaProgramaSolucaoEducacionalTags tgDTO = new DTOListaProgramaSolucaoEducacionalTags()
                    {
                        Codigo = tg.Tag.ID,
                        Nome   = tg.Tag.Nome
                    };

                    seDTO.ListaTags.Add(tgDTO);
                }

                pDTO.ListaSolucaoEducacional.Add(seDTO);

                lstResult.Add(pDTO);
            }


            return(lstResult.ToList());
        }