Пример #1
0
        public bool PodeVerRoteiroDeTreinamento(int matricula, DateTime?dataValidacao = null)
        {
            var      lstRoteiroTreinamento = new List <int>();
            DateTime AulaAssistida         = new DateTime();

            lstRoteiroTreinamento.Add(Constants.AulaRoteirodeTreinamentoMed);
            lstRoteiroTreinamento.Add(Constants.AulaRoteirodeTreinamentoMedCurso);

            using (var ctx = new DesenvContext())
            {
                foreach (var item in lstRoteiroTreinamento)
                {
                    AulaAssistida = (DateTime)(ctx.Set <msp_HoraAulaTema_Result>().FromSqlRaw("msp_HoraAulaTema @intLessonTitleID = {0}, @intClientID = {1}", item, matricula).ToList().FirstOrDefault().dteDateTime ?? DateTime.MaxValue);
                    if (AulaAssistida != DateTime.MaxValue)
                    {
                        if (dataValidacao == null)
                        {
                            return(AulaAssistida < DateTime.Now);
                        }
                        else
                        {
                            return(AulaAssistida < dataValidacao);
                        }
                    }
                }
            }
            return(false);
        }
Пример #2
0
        public List <Apostila> GetApostila(int idApostila)
        {
            using (var ctx = new DesenvContext())
            {
                var liberadasRevisao = ctx.tblConcursoQuestao_Classificacao_Autorizacao_ApostilaLiberada.ToList();
                var consulta         = from apostila in ctx.Set <msp_API_ListaApostilas_Result>().FromSqlRaw("msp_API_ListaApostilas @intYear = {0}", 0).ToList()
                                       where
                                       (idApostila == apostila.intBookID)
                                       select new Apostila()
                {
                    ID        = apostila.intBookID,
                    Capa      = !String.IsNullOrEmpty(apostila.Capa) ? Convert.ToString(apostila.Capa).Trim() : "",
                    Codigo    = !String.IsNullOrEmpty(apostila.txtCode) ? Convert.ToString(apostila.txtCode).Trim() : "",
                    Titulo    = !String.IsNullOrEmpty(apostila.txtTitle) ? Convert.ToString(apostila.txtTitle).Trim() : "",
                    Ano       = Convert.ToInt32(apostila.intYear),
                    IdProduto = (apostila.intProductGroup2.Equals((int)Produto.Cursos.MEDMEDCURSO)) ?
                                (int)Produto.Cursos.MEDCURSO : (apostila.intProductGroup2.Equals((int)Produto.Cursos.MEDCPMED)) ?
                                (int)Produto.Cursos.MED : Convert.ToInt32(apostila.intProductGroup2),
                    IdProdutoGrupo     = apostila.intProductGroup2.Value,
                    IdGrandeArea       = Convert.ToInt32(apostila.intClassificacaoID),
                    IdSubEspecialidade = Convert.ToInt32(apostila.intProductGroup3),
                    IdEntidade         = Convert.ToInt32(apostila.intBookEntityID),
                    ProdutosAdicionais = (apostila.intProductGroup2.Equals((int)Produto.Cursos.MEDMEDCURSO)) ?
                                         Convert.ToInt32(Produto.Cursos.MED).ToString() : (apostila.intProductGroup2.Equals((int)Produto.Cursos.MEDCPMED)) ?
                                         Convert.ToInt32(Produto.Cursos.CPMED).ToString() : (apostila.intProductGroup2.Equals((int)Produto.Cursos.RAC) || apostila.intProductGroup2.Equals((int)Produto.Cursos.RACIPE)) ? Convert.ToInt32((int)Produto.Cursos.RA).ToString() : "",
                    NomeCompleto    = string.Format("{0} -{1}", apostila.txtCode, (apostila.txtName ?? "").Trim().Replace(apostila.intYear.ToString(), "")),
                    LiberadaRevisao = liberadasRevisao.Where(a => a.intProductID == apostila.intBookID).Select(al => al.bitRevisar ?? false).FirstOrDefault()
                };

                return(consulta.ToList());
            }
        }
Пример #3
0
 public List <msp_API_ListaEntidades_Result> GetListaEntidades(int idProduto, int ano, int matricula)
 {
     using (var ctx = new DesenvContext())
     {
         var entidades = ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades @intProductGroup = {0}, @intYear = {1}, @matricula = {2}", idProduto, ano, matricula).ToList();
         return(entidades);
     }
 }
Пример #4
0
        public static string GetNomeResumido(int intContactID)
        {
            var ctx = new DesenvContext();

            var consulta = ctx.Set <msp_API_NomeResumido_Result>().FromSqlRaw("msp_API_NomeResumido @intContactID = {0}", intContactID).ToList().FirstOrDefault().txtName;

            return(consulta);
        }
Пример #5
0
 public static int GetExercicioIDValidoQuestoesApostilabyAnoMatriculaProduto(int id_Imed, int matricula, int ano)
 {
     using (var ctx = new DesenvContext())
     {
         var exercicio = ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades @intProductGroup = {0}, @intYear = {1}, @matricula = {2}", id_Imed, ano, matricula).ToList().FirstOrDefault();
         return((int)exercicio.intID);
     }
 }
Пример #6
0
 public static int GetExercicioIDValidoQuestoesApostila()
 {
     using (var ctx = new DesenvContext())
     {
         var matriculaAcademico = 96409;
         var exercicio          = ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades @p1 = {0}, @p2 = {1}", null, null, matriculaAcademico).ToList().FirstOrDefault();
         return((int)exercicio.intID);
     }
 }
Пример #7
0
        public int BuscarSemanaPagaAlunoCancelado(int ano, int matricula, int anoAtual, int cursoID)
        {
            var semanaPaga = -1;

            using (var ctx = new DesenvContext())
            {
                var produtos = new List <int?>();
                if (cursoID == (int)Produto.Cursos.MED)
                {
                    produtos.Add((int)Utilidades.ProductGroups.MED);
                    produtos.Add((int)Utilidades.ProductGroups.CPMED);
                    produtos.Add((int)Utilidades.ProductGroups.MEDEAD);
                }
                else if (cursoID == (int)Produto.Cursos.MEDCURSO)
                {
                    produtos.Add((int)Utilidades.ProductGroups.MEDCURSO);
                    produtos.Add((int)Utilidades.ProductGroups.MEDCURSOEAD);
                }
                else
                {
                    produtos.Add(ProdutoEntity.GetProductByCourse(cursoID));
                }

                var listPagamentos = new List <csp_CustomClient_PagamentosProdutosGeral_Result>();
                var listOrders     = (from so in ctx.tblSellOrders
                                      join od in ctx.tblSellOrderDetails on so.intOrderID equals od.intOrderID
                                      join pr in ctx.tblProducts on od.intProductID equals pr.intProductID
                                      join c in ctx.tblCourses on pr.intProductID equals c.intCourseID
                                      where so.intClientID == matricula &&
                                      produtos.Contains(pr.intProductGroup1) &&
                                      c.intYear == ano
                                      select new { so.intOrderID, so.intStatus, so.intStatus2 }).ToList();

                if (!listOrders.Where(x => x.intStatus == (int)Utilidades.ESellOrderStatus.Ativa).Any() && listOrders.Any(x => x.intStatus2 == (int)Utilidades.ESellOrderStatus.Cancelada))
                {
                    listPagamentos = ctx.Set <csp_CustomClient_PagamentosProdutosGeral_Result>().FromSqlRaw("csp_CustomClient_PagamentosProdutosGeral @p1 = {0}, @p2 = {1}", matricula, ano, 0)
                                     .Where(x => x.intYear == ano).ToList();

                    if (listPagamentos.Count > 0)
                    {
                        var maxMonth = (int)listPagamentos.Where(y => y.txtStatus == "OK").Max(x => x.intMonth);
                        if (maxMonth > 0 && maxMonth <= 12)
                        {
                            var ultimoDiaMes = DateTime.DaysInMonth(anoAtual, maxMonth);
                            var d            = new DateTime(anoAtual, maxMonth, ultimoDiaMes);
                            semanaPaga = Utilidades.GetNumeroSemanaAtual(d);
                        }
                    }
                }
            }

            return(semanaPaga);
        }
Пример #8
0
        public List <IGrouping <int?, msp_API_ListaEntidades_Result> > ObterCronograma(int cursoId, int ano, int matricula = 0)
        {
            if (matricula == 0)
            {
                matricula = Constants.CONTACTID_ACADEMICO;
            }

            List <IGrouping <int?, msp_API_ListaEntidades_Result> > cronogramaPorSemana;

            using (var ctx = new DesenvContext())
            {
                cronogramaPorSemana = ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades  @intProductGroup = {0}, @intYear = {1}, @matricula = {2}", cursoId, ano, matricula).ToList()
                                      .GroupBy(x => x.intSemana)
                                      .ToList();
            }

            return(cronogramaPorSemana);
        }
Пример #9
0
        public List <Imagem> GetConcursoImagemComentario(int questaoID)
        {
            var lstComentarioImagens = new List <Imagem>();
            var ctx = new DesenvContext();

            var retornoProc = ctx.Set <msp_Medsoft_SelectImagensComentProfessor_Result>().FromSqlRaw("msp_Medsoft_SelectImagensComentProfessor @intQuestaoID = {0}", questaoID).ToList();

            foreach (var valor in retornoProc)
            {
                var img = new Imagem()
                {
                    Url = valor.imgUrl
                };
                lstComentarioImagens.Add(img);
            }

            return(lstComentarioImagens);
        }
Пример #10
0
        public int[] GetConcursosR3(int matricula)
        {
            using (var ctx = new DesenvContext())
            {
                var idsPermitidos = ctx.Set <msp_Medsoft_SelectPermissaoExercicios_Result>().FromSqlRaw("msp_Medsoft_SelectPermissaoExercicios @bitVisitanteExpirado = {0}, @bitAlunoVisitante = {1}, @intClientID = {2}", false, false, matricula).ToList()
                                    .Where(c => c.intExercicioTipo == (int)Exercicio.tipoExercicio.CONCURSO)
                                    .Select(c => (int)c.intExercicioID)
                                    .ToList();

                var concursos = (from c in ctx.tblConcurso
                                 join cp in ctx.tblConcurso_Provas on c.ID_CONCURSO equals cp.ID_CONCURSO
                                 join cpt in ctx.tblConcurso_Provas_Tipos on cp.intProvaTipoID equals cpt.intProvaTipoID
                                 where idsPermitidos.Contains(cp.intProvaID) &&
                                 (cpt.txtDescription.ToUpper().Contains("R3") || cpt.txtDescription.ToUpper().Contains("R4"))
                                 select cp.intProvaID).Distinct().ToArray();

                return(concursos);
            }
        }
Пример #11
0
        public List <GrandeArea> GetAll(int intProductGroupId)
        {
            var clinicaMedica = (int)GrandeArea.Especiais.ClinicaMedica;
            var outras        = (int)GrandeArea.Especiais.Outras;
            var lst           = new List <GrandeArea>();
            var ctx           = new DesenvContext();
            var esp           = (new SubEspecialidadeEntity()).GetAll();

            if (intProductGroupId == (int)Produto.Cursos.MED || intProductGroupId == (int)Produto.Cursos.MEDCURSO || intProductGroupId == (int)Produto.Cursos.RA || intProductGroupId == (int)Produto.Cursos.ADAPTAMED)
            {
                var idgrupo = (intProductGroupId == (int)Produto.Cursos.RA || intProductGroupId == (int)Produto.Cursos.ADAPTAMED) ? intProductGroupId : 0;



                var consulta2 = ctx.Set <msp_API_LoadGrandeArea_Result>().FromSqlRaw("msp_API_LoadGrandeArea @intProductGroup2 = {0}", idgrupo).ToList();

                foreach (var it in consulta2)
                {
                    var ga = new GrandeArea
                    {
                        ID   = it.ID,
                        Nome = it.Nome
                    };

                    if (intProductGroupId.Equals((int)Produto.Cursos.MEDCURSO) && (ga.ID.Equals(clinicaMedica) || ga.ID.Equals(outras)))
                    {
                        ga.SubEspecialidades = esp.Where(i => i.GrandeArea == ga.ID).ToList();
                    }

                    lst.Add(ga);
                }
            }
            if (intProductGroupId.Equals((int)Produto.Cursos.MEDCURSO))
            {
                lst = lst.Where(i => !esp.Where(j => j.GrandeArea == outras).Any(x => x.ID == i.ID && i.ID != clinicaMedica)).ToList();
            }
            if (intProductGroupId.Equals((int)Produto.Cursos.MED))
            {
                lst = lst.Where(i => i.ID != outras).ToList();
            }
            return(lst);
        }
Пример #12
0
        public static List <PagamentosCliente> GetPagamentosCliente(int intClientID, int[] intYear, int intOrderid = 0)
        {
            using (var ctx = new DesenvContext())
            {
                List <csp_CustomClient_PagamentosProdutosGeral_Result> final = new List <csp_CustomClient_PagamentosProdutosGeral_Result>();

                foreach (int ano in intYear)
                {
                    List <csp_CustomClient_PagamentosProdutosGeral_Result> parcial = ctx.Set <csp_CustomClient_PagamentosProdutosGeral_Result>().FromSqlRaw("csp_CustomClient_PagamentosProdutosGeral @ClientId = {0}, @intYear = {1}, @intOrderId = {2}", intClientID, ano, intOrderid).ToList();
                    final.AddRange(parcial);
                }

                var lst = new List <PagamentosCliente>();
                //var count = final.ToList();
                foreach (var r in final)
                {
                    var pc = new PagamentosCliente
                    {
                        IDAluno        = (int)r.intClientID,
                        Aluno          = r.txtName,
                        intOrderID     = (int)r.intOrderID,
                        CPF            = r.txtRegister,
                        Ano            = (int)r.intYear,
                        Mes            = (int)r.intMonth,
                        Ref            = r.txtComment,
                        DblSumOfDebits = (double)(r.dblSumOfPaymt < 0 ? r.dblSumOfPaymt : 0),
                        DblSumOfPaymt  = r.dblSumOfPaymt > 0 ? r.dblSumOfPaymt : 0,
                        DblValue       = (double)r.dblValue
                    };


                    lst.Add(pc);
                }
                ;
                return(lst);
            }
        }
Пример #13
0
        public List <Semana> GetSemanas(int ano, int idProduto, int matricula, Semana.TipoAba aba)
        {
            try
            {
                const int ativo            = 1;
                const int inativo          = 0;
                const int produtoAdaptamed = 73;


                new Util.Log().SetLog(new LogMsPro
                {
                    Matricula = matricula,
                    IdApp     = Aplicacoes.MsProMobile,
                    Tela      = aba == Semana.TipoAba.Aulas
                                              ? Util.Log.MsProLog_Tela.MainAula
                                              : aba == Semana.TipoAba.Questoes
                                                  ? Util.Log.MsProLog_Tela.MainQuestao
                                                  : 0,
                    Acao = Util.Log.MsProLog_Acao.Abriu
                });

                var anoVigente = Utilidades.GetYear();


                using (var ctx = new DesenvContext())
                {
                    var lSemanas = new List <Semana>();

                    var semanaAtual = Utilidades.GetNumeroSemanaAtual(DateTime.Now);

                    var listaEntidades = ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades @intProductGroup = {0}, @intYear = {1}, @matricula = {2}", idProduto, ano, matricula)
                                         .ToList();

                    int prod = ProdutoEntity.GetProductByCourse(idProduto);

                    var temas     = listaEntidades.Select(y => y.intLessonTitleID);
                    var entidades = listaEntidades.Select(y => y.intID)
                                    .ToArray();

                    var acessoAntecipado = AlunoTemAcessoAntecipado(matricula);
                    var semanas          = listaEntidades.GroupBy(x => new { entidade = x.intID, semana = x.intSemana, dataInicio = x.dataInicio, datafim = x.datafim })
                                           .ToList();

                    var mesesCursados = ctx.csp_loadMesesCursados(matricula, prod);

                    var mesesCursadosAnoAnterior = mesesCursados.Where(x => x.intYear < anoVigente).Select(x => (int)x.intMonth).ToArray();

                    var mesesCursadosAnoAtual = mesesCursados.Where(x => x.intYear == anoVigente).Select(x => (int)x.intMonth).ToArray();


                    if (anoVigente > DateTime.Now.Year)
                    {
                        semanaAtual = 1;
                    }


                    var isSemanasDisabled = false;
                    if (!semanas.Any())
                    {
                        isSemanasDisabled = true;
                        const int matriculaGlobal = 96409;

                        semanas.AddRange(ctx.Set <msp_API_ListaEntidades_Result>().FromSqlRaw("msp_API_ListaEntidades @intProductGroup = {0}, @intYear = {1}, @matricula = {2}", idProduto, ano, matriculaGlobal).AsEnumerable()
                                         .GroupBy(x => new { entidade = x.intID, semana = x.intSemana, dataInicio = x.dataInicio, datafim = x.datafim })
                                         .ToList());
                    }

                    var dicProgressos         = new Dictionary <int, int>();
                    var dicProgressosQuestoes = new Dictionary <long, int>();

                    switch (aba)
                    {
                    case Semana.TipoAba.Aulas:
                        dicProgressos = new MednetEntity().GetProgressoAulas(temas.ToArray(), matricula);
                        break;

                    case Semana.TipoAba.Materiais:
                        break;

                    case Semana.TipoAba.Questoes:
                        dicProgressosQuestoes = GetProgressoQuestoes(entidades, matricula);
                        break;

                    case Semana.TipoAba.Revalida:
                        break;

                    default:
                        break;
                    }

                    foreach (var itSemana in semanas)
                    {
                        var numeroSemana = itSemana.Key.semana ?? 0;
                        var semana       = new Semana();

                        if (idProduto == produtoAdaptamed)
                        {
                            var currentYear = ano;
                            if (currentYear == 0)
                            {
                                currentYear = DateTime.Now.Year;
                            }

                            var dataTextoInicio = itSemana.Key.dataInicio + "/" + currentYear;
                            var dataInicio      = DateTime.ParseExact(dataTextoInicio, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                            var liberacao       = dataInicio <= DateTime.Now;
                            semana.Ativa       = isSemanasDisabled ? 0 : Convert.ToInt32(liberacao);
                            semana.Numero      = numeroSemana;
                            semana.DataInicio  = itSemana.Key.dataInicio;
                            semana.DataFim     = itSemana.Key.datafim;
                            semana.Apostilas   = new List <Apostila>();
                            semana.SemanaAtiva = Convert.ToInt32((dataTextoInicio == "15/09/2017"));
                        }
                        else
                        {
                            semana.Ativa      = VerificaLiberacaoSemana(acessoAntecipado, isSemanasDisabled, semanaAtual, itSemana.Key.semana, mesesCursadosAnoAnterior, mesesCursadosAnoAtual, itSemana.Key.dataInicio);
                            semana.Numero     = numeroSemana;
                            semana.DataInicio = itSemana.Key.dataInicio;
                            semana.DataFim    = itSemana.Key.datafim;
                            semana.Apostilas  = new List <Apostila>();

                            semana.SemanaAtiva = semanaAtual == numeroSemana ? ativo : inativo;
                        }

                        if (itSemana.Count() > 2)
                        {
                            var entidadeAgrupada = itSemana.GroupBy(y => new { idEntidade = y.intID, entidade = y.entidade }).ToList();
                            foreach (var entidade in entidadeAgrupada)
                            {
                                var percentlido = 0;
                                switch (aba)
                                {
                                case Semana.TipoAba.Aulas:
                                    percentlido = semana.Ativa == 1 ? (int?)dicProgressos.FirstOrDefault(x => x.Key == entidade.First().intLessonTitleID).Value ?? 0 : 0;      //GetProgressoAula(entidade.First().intLessonTitleID, matricula) : 0;
                                    break;

                                case Semana.TipoAba.Materiais:
                                    percentlido = semana.Ativa == 1 ? new MaterialApostilaEntity().GetProgressoMaterial(entidade.First().intID, matricula) : 0;
                                    break;

                                case Semana.TipoAba.Questoes:
                                    percentlido = semana.Ativa == 1 ? (int?)dicProgressosQuestoes.FirstOrDefault(x => x.Key == entidade.First().intID).Value ?? 0 : 0;      //GetPercentQuestoes((int)entidade.First().intID, matricula) : 0;
                                    break;

                                default:
                                    break;
                                }

                                var apostila = new Apostila
                                {
                                    IdEntidade  = (int)entidade.Key.idEntidade,
                                    Nome        = entidade.Key.entidade,
                                    PercentLido = percentlido,
                                    Temas       = new List <AulaTema>()
                                };

                                foreach (var tema in entidade)
                                {
                                    apostila.Temas.Add(new AulaTema {
                                        TemaID = tema.intLessonTitleID
                                    });
                                }

                                semana.Apostilas.Add(apostila);
                                if (entidadeAgrupada.Count() == 1)
                                {
                                    semana.Apostilas.Add(apostila);
                                }
                            }
                        }
                        else
                        {
                            foreach (var tema in itSemana)
                            {
                                var percentlido = 0;
                                switch (aba)
                                {
                                case Semana.TipoAba.Aulas:
                                    //percentlido = semana.Ativa == 1 ? GetProgressoAula(tema.intLessonTitleID, matricula) : 0;
                                    percentlido = semana.Ativa == 1 ? (int?)dicProgressos.FirstOrDefault(x => x.Key == tema.intLessonTitleID).Value ?? 0 : 0;
                                    break;

                                case Semana.TipoAba.Materiais:
                                    //percentlido = semana.Ativa == 1 ? new MaterialApostilaEntity().GetProgressoMaterial(semana.Apostilas.FirstOrDefault().IdEntidade, matricula) : 0;
                                    percentlido = new MaterialApostilaEntity().GetProgressoMaterial(tema.intID, matricula);
                                    break;

                                case Semana.TipoAba.Questoes:
                                    percentlido = semana.Ativa == 1 ? (int?)dicProgressosQuestoes.FirstOrDefault(x => x.Key == tema.intID).Value ?? 0 : 0;      // GetPercentQuestoes((int)tema.intID, matricula) : 0;
                                    break;

                                default:
                                    break;
                                }

                                var apostila = new Apostila
                                {
                                    IdEntidade  = (int)tema.intID,
                                    Nome        = tema.entidade,
                                    PercentLido = percentlido,
                                    Temas       = new List <AulaTema>()
                                };

                                apostila.Temas.Add(new AulaTema {
                                    TemaID = tema.intLessonTitleID
                                });

                                semana.Apostilas.Add(apostila);
                                if (itSemana.Count() == 1)
                                {
                                    semana.Apostilas.Add(apostila);
                                }
                            }
                        }

                        lSemanas.Add(semana);
                    }
                    //Se nenhuma semana estiver marcada como semana atual, marca a ultima
                    if (lSemanas.Any() && lSemanas.All(x => x.SemanaAtiva != 1))
                    {
                        lSemanas.Last().SemanaAtiva = 1;
                    }
                    return(lSemanas);
                }
            }
            catch
            {
                throw;
            }
        }