Esempio n. 1
0
 public List <long?> GetListaMateriaisPermitidos_PorMatriculaAnoProduto(int matricula, int ano, int produto)
 {
     using (var ctx = new DesenvContext())
     {
         var ResultProgressoPermitido = ctx.csp_ListaMaterialDireitoAluno(matricula, ano, produto)
                                        .Where(w => w.blnPermitido == 1)
                                        .Select(x => x.intBookEntityID)
                                        .Distinct().ToList();
         if (ResultProgressoPermitido.Count() == 0)
         {
             var lisAulaPermitido = GetApostilasLiberadasAulaCronograma(ano);
             ResultProgressoPermitido = ctx.csp_ListaMaterialDireitoAluno(matricula, ano, null)
                                        .Where(a => lisAulaPermitido.Contains((int)a.intBookEntityID))
                                        .Select(x => x.intBookEntityID)
                                        .ToList();
         }
         return(ResultProgressoPermitido);
     }
 }
Esempio n. 2
0
        public List <MaterialDireitoDTO> ObterMaterialDireitoAluno(int matricula, int produtoId, int cursoId, int anoVigente, bool acessoAntecipado, int anoMaterial = 0)
        {
            List <MaterialDireitoDTO> materialDireitoPorEntidade;
            List <csp_ListaMaterialDireitoAluno_Result> materialComApostilas;

            using (var ctx = new DesenvContext())
            {
                if (anoMaterial == 0)
                {
                    anoMaterial = anoVigente;
                }

                var isMaterialBonusMedMaster = IsMaterialBonusMedMaster(matricula, anoMaterial, produtoId);

                if (isMaterialBonusMedMaster)
                {
                    const int matriculaGlobal = Constants.CONTACTID_ACADEMICO;
                    materialComApostilas = ctx.csp_ListaMaterialDireitoAluno(matriculaGlobal, anoMaterial, produtoId).ToList();
                }
                else
                {
                    materialComApostilas = ctx.csp_ListaMaterialDireitoAluno(matricula, anoVigente, produtoId).ToList();
                }

                var apostilas = RetornaApostilasDeAcordoComMatricula(matricula);

                var apostilasLiberadas = (from tbl in apostilas
                                          join ma in materialComApostilas on tbl.intBookId equals ma.intMaterialID
                                          select new
                {
                    idApostila = tbl.intBookId,
                    idEntidade = ma.intBookEntityID
                }).ToList();

                var materialDireitoPorEntidadeMuitos = (from ma in materialComApostilas
                                                        select new
                {
                    ma.intBookEntityID,
                    ma.txtName,
                    ma.intSemana,
                    ma.dataInicio,
                    ma.datafim,
                    ma.intLessonTitleID,
                    Ativa = (ma.blnPermitido == 1 || (ma.anoCursado == anoVigente && acessoAntecipado))
                }).Distinct().ToList();

                materialDireitoPorEntidade = materialDireitoPorEntidadeMuitos.Select(x => new MaterialDireitoDTO
                {
                    Id               = x.intBookEntityID,
                    Entidade         = x.txtName,
                    IntSemana        = x.intSemana,
                    DataInicio       = x.dataInicio,
                    DataFim          = x.datafim,
                    IntLessonTitleId = x.intLessonTitleID,
                    intBookEntityId  = x.intBookEntityID,
                    Ativa            = x.Ativa
                }).ToList();

                List <int?> listaApostilasAprovadas = null;

                foreach (var md in materialDireitoPorEntidade.ToList())
                {
                    md.IntYear = materialComApostilas.Where(X => X.intBookEntityID == md.Id).Min(y => y.anoCursado);
                    if (anoVigente != anoMaterial || isMaterialBonusMedMaster)
                    {
                        if (listaApostilasAprovadas == null)
                        {
                            listaApostilasAprovadas = GetApostilasLiberadasSeHouveAulaCronograma(anoMaterial);
                        }

                        md.ApostilasAprovadas = listaApostilasAprovadas;
                    }
                    else
                    {
                        var visualizacaoLiberada = VisualizacaoLiberada(anoMaterial, matricula, cursoId, anoVigente, (int)(md.IntSemana ?? 0));
                        md.ApostilasAprovadas = visualizacaoLiberada ? apostilasLiberadas.Where(x => x.idEntidade == md.Id).Select(x => x.idApostila).ToList() : null;
                        md.QuestoesAprovadas  = visualizacaoLiberada ? materialComApostilas.Where(x => x.intBookEntityID == md.Id && x.blnPermitido == 1).Select(x => x.intMaterialID).ToList() : null;
                    }
                }
            }

            return(materialDireitoPorEntidade);
        }