Example #1
0
 internal IList <ProgramaSolucaoEducacional> ObterPrograSolucaoEducacional()
 {
     return(bmPrograma.ObterPrograSolucaoEducacional());
 }
        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());
        }