Exemplo n.º 1
0
        public List <EspecialRevalida> GetEspecialRevalida(int ano, int matricula, int idAplicacao = (int)Aplicacoes.MsProMobile)
        {
            try
            {
                var lsRevalida = new List <EspecialRevalida>();
                var mednet     = new MednetEntity();
                var aluno      = new AlunoEntity();

                new Util.Log().SetLog(new LogMsPro
                {
                    Matricula = matricula,
                    IdApp     = Aplicacoes.MsProMobile,
                    Tela      = Util.Log.MsProLog_Tela.Revalida,
                    Acao      = Util.Log.MsProLog_Acao.Abriu
                });

                var rev = mednet.GetTemasVideoRevalida();

                var revAgrp = rev.GroupBy(x => x.Assunto.Id).Select(grp => new { GrpID = grp.Key, RevalidaLst = grp.ToList() }).ToList();

                //var permissao = aluno.GetIsCortesiaRevalida(matricula);

                using (MiniProfiler.Current.Step("Carregando lista revalida obtendo o máximo progresso de aula revalida por item da lista"))
                {
                    foreach (var item in revAgrp)
                    {
                        var itemRevalida = new EspecialRevalida();
                        itemRevalida.Numero = item.GrpID;
                        itemRevalida.Ativa  = 1;

                        var apostilas = item.RevalidaLst.Select(x => new Apostila
                        {
                            IdEntidade  = x.Apostila.Especialidade.Id,
                            Nome        = x.Apostila.Descricao,
                            PercentLido = GetMaximoProgressoAulaRevalida(x.IdTema, matricula),
                            Temas       = new List <AulaTema> {
                                new AulaTema {
                                    TemaID = x.IdTema
                                }
                            }
                        }
                                                                );

                        itemRevalida.Apostilas.AddRange(apostilas);

                        lsRevalida.Add(itemRevalida);
                    }
                }

                return(lsRevalida);
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public List <EspecialRevalida> GetRevalidaCronograma(int idProduto, int ano)
        {
            List <EspecialRevalida> lsRevalida = new List <EspecialRevalida>();

            using (var ctx = new DesenvContext())
            {
                using (var ctxAcad = new AcademicoContext())
                {
                    var queryRevalida = (from ri in ctx.tblRevalidaAulaIndice
                                         join rv in ctx.tblRevalidaAulaVideo on ri.intRevalidaAulaIndiceId equals rv.intRevalidaAulaIndiceId
                                         join lt in ctx.tblLessonTitleRevalida on ri.intLessonTitleRevalidaId equals lt.intLessonTitleRevalidaId
                                         orderby ri.intOrdem
                                         select new
                    {
                        TemaDescricao = lt.txtName,
                        IdRevalidaIndice = ri.intRevalidaAulaIndiceId,
                        IdTema = ri.intRevalidaAulaIndiceId,
                        GrupoId = lt.GrupoId,
                        EspecialidadeId = lt.intEspecialidadeId
                    }
                                         ).Distinct().ToList();

                    List <int?> listaEspecialidadeId = queryRevalida.Select(x => x.EspecialidadeId).ToList();

                    var queryEspecialidade = (from e in ctxAcad.tblEspecialidades
                                              where listaEspecialidadeId.Contains(e.intEspecialidadeID)
                                              select new
                    {
                        EspecialidadeId = e.intEspecialidadeID,
                        EspecialidadeSigla = e.CD_ESPECIALIDADE
                    }).ToList();

                    var query = (from r in queryRevalida
                                 join e in queryEspecialidade on r.EspecialidadeId equals e.EspecialidadeId
                                 select new
                    {
                        TemaDescricao = r.TemaDescricao,
                        IdRevalidaIndice = r.IdRevalidaIndice,
                        IdTema = r.IdTema,
                        GrupoId = r.GrupoId,
                        EspecialidadeId = e.EspecialidadeId,
                        EspecialidadeSigla = e.EspecialidadeSigla
                    }).Distinct().ToList();

                    var temasApostila = query.Select(tema => new TemaApostila()
                    {
                        Professores   = new List <Pessoa>(),
                        Id            = tema.IdRevalidaIndice,
                        IdTema        = tema.IdTema,
                        Descricao     = tema.TemaDescricao,
                        VideosRevisao = new VideosMednet(),
                        Apostila      = new Exercicio
                        {
                            ID            = tema.IdTema,
                            Descricao     = tema.EspecialidadeId == 110 ? "GO" : tema.EspecialidadeSigla,
                            Especialidade = new Especialidade {
                                Id = tema.EspecialidadeId
                            }
                        },
                        Assunto = new AssuntoTemaApostila
                        {
                            Id        = tema.GrupoId.Value,
                            Descricao = string.Concat("Especial Revalida ", tema.GrupoId)
                        }
                    })
                                        .ToList();

                    var revalidaAgrupado = temasApostila.GroupBy(x => x.Assunto.Id).Select(grp => new { GrpID = grp.Key, RevalidaLst = grp.ToList() }).ToList();


                    foreach (var item in revalidaAgrupado)
                    {
                        var itemRevalida = new EspecialRevalida();
                        itemRevalida.Numero = item.GrpID;
                        itemRevalida.Ativa  = 1;

                        var apostilas = item.RevalidaLst.Select(x => new Apostila
                        {
                            IdEntidade  = x.Apostila.Especialidade.Id,
                            Nome        = x.Apostila.Descricao,
                            PercentLido = 0,
                            Temas       = new List <AulaTema> {
                                new AulaTema {
                                    TemaID = x.IdTema
                                }
                            }
                        }
                                                                );

                        itemRevalida.Apostilas.AddRange(apostilas);

                        lsRevalida.Add(itemRevalida);
                    }

                    return(lsRevalida);
                }
            }
        }